Ths*_*std 4 google-api oauth-2.0 google-api-client google-oauth service-accounts
我有一个 Java 后端(spring + google-oauth-client),它应该能够访问 Google.sheets 并从那里解析一些数据。
首先,我在本地后端部署上实现了常规的“三足”OAuth 2.0 身份验证,它工作得很好,但由于后端将部署在没有任何浏览器的云中,因此这不是最好的选择。
所以我决定使用服务帐户OAuth流程:创建谷歌服务帐户并重构我的代码以使用它而不是AuthCodeFlow,但我看到403 Forbidden“调用者没有权限”。据我所知,服务帐户不是谷歌的“我”,所以我必须让它访问“我的”帐户上的该工作表,但我不能这样做,因为我公司的政策禁止与他人共享文档我们的域,并且由于服务帐户具有 @myprject.iam.gserviceaccount.com 域,我无法授予对其的访问权限。
也许有一种方法可以解决这个问题,因为该服务帐户是从我的帐户创建的,该帐户拥有该工作表的所有者访问权限?如果不是,在这种情况下(无需用户参与)服务器到服务器 OAuth 的最佳方法是什么?
ps 我可以尝试与我的服务台联系,询问他们是否可以将此 gserviceaccount.com 添加到白名单等,但这将花费相当多的时间,而且结果也不能保证。
谢谢!
服务帐户访问工作表的唯一方法是您与服务帐户电子邮件地址共享工作表。您无法更改 Google 设置的服务帐户电子邮件地址。
您可以将该表设置为公开,然后就可以阅读它,但我有一种感觉,您的公司也不会喜欢这个想法。
我建议您返回到 oauth2 选项并在您的计算机上对其进行身份验证,并将刷新令牌复制到云服务器,然后它应该能够使用它。
归档时间: |
|
查看次数: |
2899 次 |
最近记录: |