2016-07-26 5 views
0

Googleのアクセストークンを持っています.gmail apiとgoogleの連絡先apiのスコープが登録されています。私はそれをこのようにする:Gmailのapi .Netはアクセストークンを使用してメッセージを送信します

var code = Request.QueryString["code"]; 

    OAuth2Parameters parameters = new OAuth2Parameters() 
     { 
      ClientId = clientId, 
      ClientSecret = clientSecret, 
      RedirectUri = redirectUri, 
      Scope = scopes 
     }; 

     if (code == null) 
     { 
      string url = OAuthUtil.CreateOAuth2AuthorizationUrl(parameters); 

      return Redirect(url); 
     } 

     parameters.AccessCode = code; 
     OAuthUtil.GetAccessToken(parameters); 

そして今私はGmailのAPIを介して電子メールを送信する必要があります。しかし、Googleドキュメントで私がUserCredentialを使用するGmailのAPIで認証する唯一の方法が見つかりました:

var service = new GmailService(new BaseClientService.Initializer() 
      { 
       HttpClientInitializer = credential, 
       ApplicationName = ApplicationName, 
      }); 

をしかし、私はすでに、私は電子メールを送信するためにそれを使用する方法、アクセストークンを働いてきましたか?

+0

[この回答](http://stackoverflow.com/questions/24728793/creating-a-message-for-gmail-api-in-c-sharpは)いくつかの手がかりを与えるかもしれません。 – Tholle

答えて

0

.NETクライアントでは、既存のアクセストークンからUserCredentialオブジェクトを作成することはできません。その代わりに、ライブラリによって提供される許可フローを使用して、それらを使用して正しいオブジェクトを生成します。

0

https://github.com/google/google-api-dotnet-client/issues/761

あなたがUserCredentialオブジェクトのコンストラクタに渡す必要が流れザッツトークンレスポンスのためのコードを交換するときに私がした同じ例を使用したように見えます、判明しました。

var clientSecrets = new ClientSecrets { ClientId = clientId, ClientSecret = secret }; 
var flow = new GoogleAuthorizationCodeFlow(new GoogleAuthorizationCodeFlow.Initializer 
      { 
       ClientSecrets = clientSecrets, 
       Scopes = new[] { @"https://www.googleapis.com/auth/gmail.settings.basic" } 

      }); 

      TokenResponse token = await flow.ExchangeCodeForTokenAsync("userEmail", authCode, "http://localhost:30297", CancellationToken.None); 

      UserCredential cred = new UserCredential(flow, "me", token); 

      string accessToken = token.AccessToken; 
      var service = new GmailService(
       new BaseClientService.Initializer { HttpClientInitializer = cred }); 
関連する問題