gpt4 book ai didi

c# - 如何创建已经具有 Google Drive API 访问代码和 token 的凭据对象

转载 作者:太空宇宙 更新时间:2023-11-03 19:55:44 25 4
gpt4 key购买 nike

我想对工作表和 google drive api 使用相同的 OAuth 代码和 token ,而无需为工作表和驱动器重定向到页面 2 次。

以下是使用oauth 2生成access code和token的代码

                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 sheet API 生成的。

我也想为这个相同的 token 使用 google drive API。

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

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

最佳答案

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

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
});

关于c# - 如何创建已经具有 Google Drive API 访问代码和 token 的凭据对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33838597/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com