1

我已经完成了执行 OOB OAuth2 连接的示例,它在我的笔记本电脑上运行良好。

我面临的挑战是它会启动浏览器,要求我验证是否要授予我的应用程序访问相关文档的权限。从那时起,它将我的凭据集存储在本地文件中并继续正常工作。

我的用例是我公司中有许多部门想要利用 Google Docs 电子表格进行报告。然后,我希望能够在服务器上运行一个程序(来自一个 cron 作业),该程序可以抓取这些数据并为所有部门构建一个汇总报告。

我打算创建一个“报告用户”,授予对所有相关文档的读取访问权限,然后使用该身份运行报告过程。

我尝试在笔记本电脑上运行它,然后将存储的凭据复制到我的服务器以供使用。但似乎这些凭据与机器相关联,因此它强制通过浏览器进行新的验证流程。

关于如何使用 Google Drive 的身份验证流程以允许我做我需要的任何建议?

TIA

4

3 回答 3

1

我建议使用已被授予对所有 Google Apps 域用户文档的只读访问权限的服务帐户,而不是需要授予某些用户对所有文档的只读访问权限:

https://developers.google.com/drive/delegation

采用:

https://www.googleapis.com/auth/drive.readonly

作为您在控制面板中授予服务帐户访问权限的 OAuth 范围。这样一来,如果服务器受到威胁,您对只读的访问权限就会受到限制。

于 2013-01-02T17:48:16.670 回答
1

从 API 控制台使用 p12 文件创建 GoogleCredential(API 访问 > 创建另一个客户端 ID > 服务帐户等):

GoogleCredential.Builder#setServiceAccountPrivateKeyFromP12File(File)

有关服务帐户的更多信息

于 2013-01-02T18:52:05.780 回答
0

其他答案比这更好,但您始终可以获得一组凭据并将它们保存在文件中以供重复使用。可以使用 Web 浏览器获取凭据,但只能完成一次,然后您的服务器可以永远使用它们(只要您请求离线访问并获得刷新令牌)。

于 2013-01-02T19:20:37.260 回答