我构建了一个使用链接到我自己的Google帐户的服务帐户的网络应用程序。我们使用Google Apps,因此我的Google帐户是域名的一部分。我们有一个共享联系人的服务器,所以我们所有的客户都可以作为每个人的联系人。在我的联系人中,该组称为“目录”。
该应用程序使用Google Api PHP客户端从Google日历中检索事件。它还会检查与会者是否包含这些与会者的所有详细信息。但如果与会者不在我们的域内,它将只检索电子邮件地址。我也想得到那位与会者的名字。
这些名称位于目录组的联系人中。当我创建活动并邀请访客时,我可以检索这些联系人,它将显示名称和邮件地址。但是,当通过API检索与会者时,它不会显示这些名称。
这是API的限制吗?这有解决方案吗?
我不想将Contacts api与非服务帐户一起使用,因为我不想每次都给予权限。据我所知,无法将Contacts api与服务帐户一起使用。
答案 0 :(得分:1)
您是正确的,服务帐户无法使用Contacts API,但您不必在每次使用时都对其进行授权。您可以使用两条腿OAuth 1.0a而不是2.0来提供域范围的委派。请参阅https://developers.google.com/google-apps/contacts/v3/index#authorizing_requests_to_the_+wzxhzdk8+_service和https://developers.google.com/accounts/docs/OAuth#GoogleAppsOAuth。
根据您的设置,您还可以将三足OAuth 2.0流用于单个管理员帐户并保存刷新令牌。这样您就可以重新使用该授权,而无需再次获得明确许可。