【问题标题】:Google drive v2 api sample谷歌驱动 v2 api 示例
【发布时间】:2014-09-12 18:16:32
【问题描述】:

我需要编写示例代码 我需要允许 user1@gmail.com, user2@gmail.com, user3@gmail.com,... 使用 sdk 访问我在谷歌驱动器帐户中的所有文件(my_mail@gmail.com) . 我试过这个(在谷歌开发者控制台上安装应用程序),服务返回当前登录浏览器的用户文件

ClientSecrets secrets = new ClientSecrets
{
    ClientId = CLIENT_ID,
    ClientSecret = CLIENT_SECRET,
};

IDataStore StoredRefreshToken = new SavedDataStore(new StoredResponse() { });
UserCredential credential = GoogleWebAuthorizationBroker.AuthorizeAsync(secrets,
        SCOPES, "1", CancellationToken.None, StoredRefreshToken /*, credentialPersistanceStore*/).Result;

BaseClientService.Initializer initializer = new BaseClientService.Initializer
{
    HttpClientInitializer = credential,
    ApplicationName = APP_USER_AGENT
};

return new DriveService(initializer);

我在asp.net mvc上写的,希望你是hepls

【问题讨论】:

  • 你有什么问题?
  • @jon 我想他在问如何使用特定用户登录,而不是当前在机器上的浏览器中登录的用户。
  • 好的,我明白你的意思了。我不确定最好的方法:(
  • 是的,我需要访问其他用户帐户中的 google 驱动器文件

标签: c# google-api google-drive-api


【解决方案1】:

您的应用需要为 my_mail@gmail.com 存储一个刷新令牌,然后使用它来生成访问令牌。您可以使用How do I authorise an app (web or installed) without user intervention? (canonical ?)的步骤,这意味着您无需编写任何授权码。

【讨论】:

  • ClientSecrets secrets = new ClientSecrets {ClientId = CLIENT_ID, ClientSecret = CLIENT_SECRET, };IDataStore StoredRefreshToken = new SavedDataStore(new StoredResponse() { }); UserCredential credential = GoogleWebAuthorizationBroker.AuthorizeAsync(secrets, SCOPES, "1", CancellationToken.None, StoredRefreshToken /*, credentialPersistanceStore*/).Result; BaseClientService.Initializer initializer = new BaseClientService.Initializer {HttpClientInitializer = credential, ApplicationName = APP_USER_AGENT };var service = DriveService(initializer);
  • FileList files = service.Files.List().Execute();return files.Items.Count;这将返回浏览器中当前登录用户的计数文件,我只需要我的文件而不需要在浏览器中登录帐户
  • Google 的所有示例代码都是针对常规用户授权访问自己的资源的。您不能复制粘贴它,因为您的用例不同。您需要研究 Google OAuth SDK 以了解如何让它使用您存储的刷新令牌。或者停止使用它并简单地自己调用 OAuth 端点。这里描述了developers.google.com/accounts/docs/OAuth2WebServer#refresh
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-31
  • 2012-07-04
  • 1970-01-01
  • 1970-01-01
  • 2023-04-06
相关资源
最近更新 更多