2017-12-21 28 views
0

私はGMail APIの使用を開始しました。ローカルマシンで正常に動作しています。 Google権限ページが開き、自分のアカウントを選択することができます。次に、return jsonトークンを格納し、このトークンが削除されたかどうかを再度尋ねます。GMail OAUTHは公開時に許可を求めていません

サーバーに公開すると、OAUTHページは表示されず、アプリケーションは「スレッドが中止されました」という例外が発生してタイムアウトしているように見えます。

マイコード;

try 
    { 
     using (var stream = new FileStream(HttpContext.Current.Server.MapPath("~/credentials/client_id.json"), FileMode.Open, FileAccess.Read)) 
     { 
      string credPath = HttpContext.Current.Server.MapPath("~/credentials/gmail_readonly_token.json"); 

      _credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
       GoogleClientSecrets.Load(stream).Secrets, 
       Scopes, 
       "user", 
       CancellationToken.None, 
       new FileDataStore(credPath, true)).Result; 
      db.writeLog("INFO", "Gmail Credentials Saved","Credential file saved to: " + credPath); 

     } 
     // Create Gmail API service. 
     service = new GmailService(new BaseClientService.Initializer() 
     { 
      HttpClientInitializer = _credential, 
     }); 
    } 
    catch (Exception e) 
    { 
     db.writeLog("Error", "Failure when creating Gmail class", e.Message, null, _username, null); 
    } 

は、私は(正式にclient_secret.json)ファイル 'client_id.json' の中に変更する必要が何かありますか?私が変更したのは、redirect_uris行のみです。

他の提案があれば歓迎します。私が似ている唯一の他の質問はhereですが、答えはありません。

ありがとう、

ダニー。

答えて

0

クライアント側のユースケースに従ったため、最初のものが機能しました。ただし、サーバー上で承認を実装するには、Implementing Server-Side AUthorizationガイドに従ってください。

+0

遅い応答に申し訳ありません!これを行うつもりですが、私はIIS Expressで実行されているWebアプリケーションとIIS上で動作しているWebアプリケーション(特にサーバーアプリケーションプールが私として動作するように設定されている場合)との違いを見るのに苦労していました。乾杯! – RexNoctis

関連する問題