服务器到服务器的身份验证可以访问但不能访问预期的数据


server to server auth can access but not expected data

我已经用刷新令牌成功地获得了oauth 2访问权限。我正在使用日历服务,可以从日历中检索我的日历和事件列表。我现在正在使用服务器到服务器的身份验证进行测试,并创建并下载了一个密钥。然而,当我尝试获取日历列表时,我只得到一个与服务器到服务器访问创建的id相关的条目。我帐户中的日历没有显示。

服务器到服务器的身份验证似乎没有访问我期望的完整帐户。

我是否错过了查看日历完整列表的设置?

我也尝试使用相同的访问权限访问分析,但返回一个错误,即没有设置分析帐户。

感谢任何关于为什么两种类型的访问(刷新令牌或服务器密钥)对显然相同的帐户产生不同结果的帮助或指导。

确定

我发现了这个问题。服务器到服务器的身份验证为访问创建一个唯一的id广告电子邮件。要按预期访问我的主要谷歌帐户上的数据,我需要将此电子邮件帐户添加到日历设置中授权用户的日历中。

当您设置服务器到服务器密钥时,user_email将类似于:

xxxxxxxxxxx@developer.gserviceaccount.com

进入日历、设置,然后在每个日历>日历设置>日历下更改共享选项。添加此电子邮件地址并设置适当的用户访问

我现在可以使用服务器到服务器的访问权限和密钥访问日历了!

感谢这篇文章提供的线索:服务应用程序和Google Analytics API V3:服务器到服务器OAuth2身份验证?