我使用oAuth 2.0对gmail api v1进行身份验证,并获取访问令牌和刷新令牌,但如何使用刷新令牌获取访问令牌。
UserCredential credential;
credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
new ClientSecrets
{
ClientId = "my client id",
ClientSecret = "my client secret"
},
new[] { GmailService.Scope.GmailSend },
"user",
CancellationToken.None).Result;
// Create Gmail API service.
var service = new GmailService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = ApplicationName,
});
string RefreshToken = credential.Token.RefreshToken;
Google.Net客户端库为您处理所有这些。一旦您使用服务发出第一个请求,它将使用刷新令牌请求访问令牌。
Anwser:如果需要,向Gmail API发出一个简单的请求,将获取访问令牌。
我不知道如何使用.Net库。要手动操作,
后
"client_secret="+[ClientSecret]+"&grant_type=refresh_token"+"&aamp;refresh_taken="+[RefreshToken]+"&client_id="+[CClientID]
收件人https://www.googleapis.com/oauth2/v3/token
您需要将方括号中的数据替换为您的详细信息
工作代码
string[] scopes = new string[] { "https://mail.google.com/" };
UserCredential credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
new ClientSecrets
{
ClientId = "my client id",
ClientSecret = "my client secret"
},
scopes,
"user",
CancellationToken.None).Result;
string RefreshToken = credential.Token.RefreshToken;//you will get Refreshtoken