【发布时间】:2014-01-18 23:55:57
【问题描述】:
我正在使用 Google python api 客户端构建一个带有 服务帐户 的 SignedJwtAssertionCredentials 对象,该对象可成功用于模拟用户并访问某些 API,例如日历,例如:
credentials = SignedJwtAssertionCredentials(CLIENT_ID, PRIVATE_KEY, SCOPE)
http = httplib2.Http()
http = credentials.authorize(http)
service = build('calendar', 'v3', http = http)
...
我正在寻找一种方法来使用这些凭据通过 IMAP 和 XOAUTH2 进行连接,这意味着我需要构建一个 XOAUTH2 字符串,例如:
'user=<EMAIL_ADDR>\1auth=Bearer <ACCESS_TOKEN>\1\1'
使用常规 OAuth2,ACCESS_TOKEN 部分可以轻松刷新和获取。
我试过了:
credentials = SignedJwtAssertionCredentials(
CLIENT_ID, PRIVATE_KEY, "https://mail.google.com/",
prn = "required_user@email.com")
credentials.refresh(httplib2.Http())
并在 XOAUTH2 字符串中使用credentials.access_token,但它不起作用。
有什么方法可以将 SignedJwtAssertionCredentials 转换为 XOAUTH2 字符串?
【问题讨论】:
标签: python oauth-2.0 google-oauth google-api-python-client