我正在编写一个网络应用程序,让我们的客户可以将他们在个人 Google Drive 上的文件同步到我们的业务应用程序上。(仅限有限的文件类型)。
所以 - 到目前为止有效:
- 用户注册到应用程序(使用 OAuth2 并在我的最后保存一个 refreshtoken)用户/和我的应用程序,现在可以访问他们云端硬盘上的文件,并且可以手动调用文件传输。
工作正常。
用户之后可以再次登录并重复此操作,而无需再次验证应用程序。美好的。
同时,我需要某种“服务”,通过我们的应用程序的用户群循环并自动同步指定文件夹中的文件 - 比如说每 10 分钟。
现在由于 OAuth2 模型而遇到问题,需要重定向以验证每个用户。但是我不能从一个请求中进行多次重定向,比如“/SyncAllUsers”。此外,当仅使用一个用户进行测试时,用户仍然必须登录到浏览器会话,否则 google 将重定向到服务登录页面。
(我们使用 chron-job 以指定的时间间隔调用这些方法 - 它与 dropbox-accounts 配合良好,这些用户也使用 OAuth)
所以基本上2个问题:
- 如何使用我已经授权的应用程序访问我的用户云端硬盘帐户,而无需用户“登录”
- 以及我应该如何处理同步服务以运行而不必重定向每个用户。
我花了几天时间在https://developers.google.com/drive/和这里寻找答案。我有暗示。来自这里的 OAuth 代码https://developers.google.com/drive/credentials#retrieve_oauth_20_credentials 我修改了它,所以它使用我自己的用户数据库。
在 Google API 控制台中使用 Web 应用程序的客户端 ID 获取您的信息