我正在尝试使用 Google Contacts API 连接到我的 Google 应用程序域上的用户联系信息。
在为我的项目使用 API 密钥时使用 gdata api 的 ContactsService clientlogin 函数生成 access_token 工作正常,但我不希望存储用户的凭据,并且根据我发现该方法使用 OAuth1.0 的信息
所以,要使用 OAuth2.0,我有:
- 在开发者控制台中为我的项目生成了一个服务帐户
- 在 Google Apps 域管理面板中授予对https://www.google.com/m8/feeds/范围内服务帐户的访问权限
尝试使用 SignedJwtAssertionCredentials 生成凭据:
credentials = SignedJwtAssertionCredentials( service_account_name=service_account_email, private_key=key_from_p12_file, scope='https://www.google.com/m8/feeds/', sub=user_email')
我遇到的问题是尝试使用此方法生成访问令牌失败。当我删除 sub 参数时,它成功生成了令牌,但是当我尝试获取用户的联系人时,该令牌失败。
有谁知道为什么会发生这种情况?