如何创建凭证对象已经有访问代码和令牌的谷歌驱动器API

本文关键字:代码 访问 令牌 API 驱动器 谷歌 何创建 创建 对象 凭证 | 更新日期: 2023-09-27 18:23:38

我想对工作表和谷歌驱动器api使用相同的OAuth代码和令牌,而不必为工作表和驱动器重定向到页面2次。

以下是使用oauth 2 生成访问代码和令牌的代码

                string SCOPE = "https://spreadsheets.google.com/feeds https://docs.google.com/feeds";
                OAuth2Parameters parameters = new OAuth2Parameters();
                parameters.ClientId = CLIENT_ID;
                parameters.ClientSecret = CLIENT_SECRET;
                parameters.RedirectUri = REDIRECT_URI;
                parameters.Scope = SCOPE;
                string authorizationUrl = OAuthUtil.CreateOAuth2AuthorizationUrl(parameters); 
                OAuthUtil.GetAccessToken(parameters);
                string accessToken = parameters.AccessToken;

与asp.net中的mvc一样,它是通过重定向google表单API生成的。

我想使用谷歌驱动器API同样的令牌。

我如何为google Drive API创建凭证对象以便使用它。遵循代码打开另一个窗口并将代码发送到该窗口

var credential = GoogleWebAuthorizationBroker.AuthorizeAsync(new ClientSecrets
      {
         ClientId = clientId,
         ClientSecret = clientSecret
      }, scopes, "skhan", CancellationToken.None, new FileDataStore("Drive.Auth.Store")).Result;

如何创建凭证对象已经有访问代码和令牌的谷歌驱动器API

您可以使用下面的代码,假设您已经拥有访问/刷新令牌:

var flow = new GoogleAuthorizationCodeFlow(new GoogleAuthorizationCodeFlow.Initializer
    {
        ClientSecrets = new ClientSecrets
            {
                ClientId = ClientId,
                ClientSecret = ClientSecret
            },
            Scopes = new[] { DriveService.Scope.Drive }
    });
var credential = new UserCredential(_flow, UserIdentifier, new TokenResponse
    {
        AccessToken = AccessToken,
        RefreshToken = RefreshToken
    });
var service = new DriveService(new BaseClientService.Initializer
    {
        ApplicationName = "MyApp",
        HttpClientInitializer = credential,
        DefaultExponentialBackOffPolicy = ExponentialBackOffPolicy.Exception | ExponentialBackOffPolicy.UnsuccessfulResponse503
    });

您可以使用这里提到的方法:使用刷新令牌进行.NET Google api 1.7测试版身份验证,只需设置令牌响应即可访问和引用令牌,就可以开始了。