2016-07-12 12 views
0

私はGoogle .Net Quickstartに従っています。私は、ポート37623上のすべての時間を実行するために、プロジェクトを設定していると私が持っているGMail API正しく認証されていません

public class HomeController : Controller 
{ 
    static string[] Scopes = { GmailService.Scope.GmailReadonly }; 
    static string ApplicationName = "APP NAME"; 
    public ActionResult Index() 
    { 
     ViewBag.Title = "Home Page"; 

     Run(); 

     return View(); 
    } 

    private void Run() 
    { 
     UserCredential credential; 
     credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
      new ClientSecrets 
      { 
       ClientId = "<<MY REAL CLIENT ID IS HERE>>", 
       ClientSecret = "<<MY REAL CLIENT SECRET IS HERE>>" 
      }, 
      Scopes, 
      "<<MY EMAIL ADDRESS>>", 
      CancellationToken.None, new FileDataStore("Mail.Labels")).Result; 

    } 
} 

...デベロッパーコンソールでアプリを設定し、MVCコントローラでこれを持っている(私は信じて)正しくましたデベロッパーコンソールでクライアントを設定して、http://localhost:37623/Home/Indexへのリダイレクトを許可します。

私が使用したいアカウントを明示しているにもかかわらず、私はアプリケーションを実行するときに私はGMailアカウントのリスト(私はカップルを持っています)です。アカウントセレクタをクリックしてアカウントを選択すると、すぐにエラーメッセージが表示され、400エラー:redirect_uri_mismatchが返されました。

私はエラーページのリクエストの詳細を見ればお分かりのように、それは

access_type=offline 
scope=https://www.googleapis.com/auth/gmail.readonly 
response_type=code 
redirect_uri=http://localhost:41509/authorize/ 
client_id=<<MY CLIENT ID>> 

...これを示し、REDIRECT_URI 間違っています。それはポート41509を指しています(この例では、それは呼び出しごとに変わります)。

私には何が欠けていますか?私はそうしていなければならないことは何ですか?リダイレクトURIを設定しているとは思われませんGoogleWebAuthorizationBroker.AuthorizeAsync

これは10分間のエクササイズになると思いました。 :-(

答えて

0

これは、Google Developer Consoleで設定したOAuthクライアントIDのアプリケーションタイプが「ウェブアプリケーション」に設定されているためです。アプリケーションタイプを削除して新しいタイプを作成したためです「その他」は私に認証を許可します。

関連する問題