2

我正在尝试使用 Google Contacts API 连接到我的 Google 应用程序域上的用户联系信息。

在为我的项目使用 API 密钥时使用 gdata api 的 ContactsService clientlogin 函数生成 access_token 工作正常,但我不希望存储用户的凭据,并且根据我发现该方法使用 OAuth1.0 的信息

所以,要使用 OAuth2.0,我有:

  1. 在开发者控制台中为我的项目生成了一个服务帐户
  2. 在 Google Apps 域管理面板中授予对https://www.google.com/m8/feeds/范围内服务帐户的访问权限
  3. 尝试使用 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 参数时,它成功生成了令牌,但是当我尝试获取用户的联系人时,该令牌失败。

有谁知道为什么会发生这种情况?

4

0 回答 0