使用OAuth2管理Google EmailSettings

时间:2015-08-13 22:25:22

标签: google-admin-sdk

我们一直在使用电子邮件设置API来管理我们的用户签名,并为Google Apps注入正确的HTML签名。直到最近它一直运作良好。旧代码使用“ClientLogin”和管理员凭据。我已经尝试使其与OAuth一起使用,因为ClientLogin已被完全删除。

import gdata.apps.emailsettings.client,sys
from oauth2client.client import SignedJwtAssertionCredentials

SERVICE_ACCOUNT_EMAIL = 'xx@developer.gserviceaccount.com'

filename = sys.argv[1]
username = sys.argv[2]


f = file('key.pem', 'rb')
key = f.read()
f.close()

credentials = SignedJwtAssertionCredentials(SERVICE_ACCOUNT_EMAIL, key,
scope='https://apps-apis.google.com/a/feeds/emailsettings/2.0/',
sub=username)

auth2token = gdata.gauth.OAuth2TokenFromCredentials(credentials)

emclient = gdata.apps.emailsettings.client.EmailSettingsClient(domain='companyname.com')
auth2token.authorize(emclient)

print filename
print username

f = open(filename, 'r')
data = f.read()
f.close
emclient.UpdateSignature(username=username, signature=data)

当我们运行它时,我们得到:

oauth2client.client.AccessTokenRefreshError: unauthorized_client: Unauthorized client or scope in request.

我已经阅读了有关电子邮件设置API的文档,并且它引用了向用户询问来自同意屏幕的代码,但是提供了关于其中任何一个应该如何工作的零文档,我宁愿没有处理任何用户交互。

我通过开发人员控制台在那里激活API,但它根本不存在。我尝试激活Gmail(虽然它有所不同),但它没有帮助。

我是OAuth2和Python的新手,所以也许我错过了一些明显的东西。

0 个答案:

没有答案