我已经完成了执行OOB OAuth2连接的示例,它可以在笔记本电脑上正常工作。
我遇到的挑战是它启动了一个浏览器,要求我验证是否要将我的应用程序的访问权限授予相关文档。从那时起,它将我的凭证集存储在本地文件中,并继续正常工作。
我的用例是我公司的许多部门都希望利用Google Docs电子表格进行报告。然后,我希望能够在服务器上运行程序(来自cron作业),该程序可以抓取这些数据并为所有部门构建汇总报告。
我打算创建一个“报告用户”,该用户被授予对相关文档的读取权限,然后使用该身份运行报告流程。
我尝试在笔记本电脑上运行它,然后将存储的凭据复制到我的服务器以供其使用。但似乎这些凭据与机器相关联,因此它通过浏览器强制执行新的验证流程。
有关如何使用Google云端硬盘的授权流程以便让我做我需要的任何建议吗?
TIA
答案 0 :(得分:1)
我建议您使用已授予对所有Google Apps域用户文档的只读访问权限的服务帐户,而不是需要授予某些用户对所有文档的只读访问权限。
https://developers.google.com/drive/delegation
使用:
https://www.googleapis.com/auth/drive.readonly
作为您在“控制面板”中授予服务帐户访问权限的OAuth范围。这样,如果服务器遭到入侵,则您只能访问只读权限。
答案 1 :(得分:1)
使用API控制台的p12文件创建GoogleCredential(API访问>创建另一个客户ID>服务帐户等):
GoogleCredential.Builder#setServiceAccountPrivateKeyFromP12File(File)
答案 2 :(得分:0)
其他答案要好于此,但您始终可以获取一组凭据并将其保存在文件中以供重复使用。获取凭据可以通过Web浏览器完成,但只能执行一次,然后您的服务器可以永久使用它们(只要您请求脱机访问并获取刷新令牌)。