我正在尝试使用命令行应用中的Google Contacts API在我的帐户中提取联系人。对我的命令行驱动器开源应用程序(http://asynk.io/)有意义的唯一oAuth选项是服务帐户模型。最近关闭ClientLogin功能没有足够的文档或支持如何使用服务帐户身份验证是非常痛苦的。我还没有设法让我的代码再次运行。
我使用以下代码访问我的联系人。我的其余代码来拉取联系人/文件夹保持不变。但是现在我没有收到我帐户中的任何联系人。
em = self.get_client_email()
key = self.get_private_key()
scope = 'https://www.google.com/m8/feeds'
gdc = gdata.contacts.client.ContactsClient(source='ASynK')
credentials = SignedJwtAssertionCredentials(em, key, scope)
auth2token = gdata.gauth.OAuth2TokenFromCredentials(credentials)
auth2token.authorize(gdc)
我已经看到了与此类似的其他问题,并且之前的问题可能与API控制台中无法使用的Contacts API有关。但现在情况并非如此。我可以在该控制台上看到Contacts API,并且我的帐户已启用。
在ClientLogin关闭后,有没有人成功使用Contacts API?
修改
从进一步的研究看来,通过链接到普通gmail.com地址的服务帐户可以访问的联系人是针对该应用程序本身的,而不是该链接帐户,这从我的角度来看是奇怪的。