python - 如何使用服务帐户 oauth2 Python 客户端通过 Google 电子邮件设置 API 进行身份验证?

标签 python oauth-2.0 google-email-settings-api

我正在使用 Python 2.6 和 Google API 的客户端库,我试图用它来获得对电子邮件设置的经过身份验证的访问权限:

f = file(SERVICE_ACCOUNT_PKCS12_FILE_PATH, 'rb')
key = f.read()
f.close()
credentials = client.SignedJwtAssertionCredentials(SERVICE_ACCOUNT_EMAIL, key,      scope='https://apps-apis.google.com/a/feeds/emailsettings/2.0/', sub=user_email)

http = httplib2.Http()
http = credentials.authorize(http)
return discovery.build('email-settings', 'v2', http=http)

当我执行这段代码时,出现了以下错误: UnknownApiNameOrVersion:名称:电子邮件设置版本:v2

email settingsV2 的 api 名称和版本是什么? 是否可以与服务帐户一起使用? 问候

最佳答案

我找到了使用服务帐户 oauth2 获取电子邮件设置的解决方案: 这是一个例子:

  SERVICE_ACCOUNT_EMAIL = ''
  SERVICE_ACCOUNT_PKCS12_FILE_PATH = ''
  EMAIL_SETTING_URI = "https://apps-apis.google.com/a/feeds/emailsettings/2.0/%s/%s/%s" 

 def fctEmailSettings():

    user_email = "user@mail.com"
    f = file(SERVICE_ACCOUNT_PKCS12_FILE_PATH, 'rb')
    key = f.read()
    f.close()
    credentials = client.SignedJwtAssertionCredentials(SERVICE_ACCOUNT_EMAIL, key, scope='https://apps-apis.google.com/a/feeds/emailsettings/2.0/', sub=user_email)
    auth2token = OAuth2TokenFromCredentials(credentials)
    ESclient = EmailSettingsClient(domain='doamin.com')
    auth2token.authorize(ESclient)
    username = 'username'
    setting='forwarding'
    uri = ESclient.MakeEmailSettingsUri(username, setting)
    entry = ESclient.get_entry(uri = uri,  desired_class = GS.gdata.apps.emailsettings.data.EmailSettingsEntry)

关于python - 如何使用服务帐户 oauth2 Python 客户端通过 Google 电子邮件设置 API 进行身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25122708/

相关文章:

java - 未找到 Gmail 设置服务

Python 博托 : filter on tag and value

python - 从脚本和命令行访问函数

python - 将 Google EmailSettings API python 代码从 OAuth1 移动到 OAuth2 服务帐户

javascript - 将 Amazon Cognito 的授权码授予用于无服务器/单页 Web 应用程序

api - 我可以使用 Google 表格连接到 API(使用 OAuth2)或者我可以从 Postman 向 Google 表格发送每小时的预定回复吗?

python - 使用python服务帐户管理gmail签名

python - 如何获取生成的子进程命令字符串

python - 在拆分器中设置 pyqt 小部件的初始宽度

authentication - 基于 OAuth 和基于 Token 的身份验证有什么区别?