asp.net mvc应用程序需要从“服务”访问用户google驱动器帐户

时间:2013-01-23 16:16:18

标签: asp.net-mvc oauth-2.0 google-drive-api

我正在编写一个网络应用程序,让我们的客户可以将他们在个人Google Drive上的文件同步到我们的丛林应用程序中。 (仅限有限的文件类型)。

所以 - 到目前为止有效:

  • 用户注册到应用程序(使用OAuth2并在我的最后保存了一个refreshtoken)用户/和我的应用程序现在可以访问其驱动器上的文件,并且可以手动调用文件传输。

工作正常。

  • 用户可以再次登录并重复此操作,而无需再次对应用程序进行身份验证。细

  • 与此同时,我需要某种“服务”,通过我们的应用程序的用户群和自动同步文件在指定的文件夹中循环 - 比如每10分钟一次。

现在由于OAuth2模型而遇到问题,需要重定向以验证每个用户。但我无法从单个请求中进行多次重定向,比如“/ SyncAllUsers”。 此外,仅使用一个用户进行测试时,用户仍然必须登录浏览器会话,否则Google将重定向到服务登录页面。

(我们使用chron-job以指定的时间间隔调用这些方法 - 它适用于dropbox-accounts,这些用户也使用OAuth)


所以基本上有两个问题:

  • 如何使用我已经授权的应用访问我的用户云端硬盘帐户,而无需用户“登录”
  • 我应该如何处理同步服务而无需重定向每个用户。

我花了几天时间在https://developers.google.com/drive/和此处搜索答案。 我有冲动。来自此处的OAuth代码https://developers.google.com/drive/credentials#retrieve_oauth_20_credentials 我修改了它,所以它使用我自己的用户数据库。

在Google API控制台中使用Web应用程序的客户端ID进行信息

1 个答案:

答案 0 :(得分:0)

获得刷新令牌后,您可以使用它来执行同步而无需用户干预。这是offline访问的本质以及刷新令牌的整个目的。

(对不起,如果这不能回答你的问题,我不确定你在问什么,所以请解释一下,我会尽量给你一个不同/更好的答案。)