6

GoogleのCalendarAPIを使用して、別のサードパーティと行う必要のあるOAuth2統合をデモしようとしています。DotNetOpenAuthライブラリを使用していますが、許可/拒否プロンプトのGoogleへの最初のリダイレクトを取得し、認証コードを取り戻すことができました。

アクセストークンと更新トークンを取得する必要がありますが、アクセストークンを取得するだけのようで、更新トークンはnullです。

これは、ユーザーが承認または拒否した後にGoogleがリダイレクトするコントローラーアクションメソッドです。

public ActionResult ProcessResponse(string state, string code, string error)
{
  var oAuthClient =
    new WebServerClient(
      new AuthorizationServerDescription
      {
        TokenEndpoint = new Uri("https://accounts.google.com/o/oauth2/token"),
        AuthorizationEndpoint = new Uri("https://accounts.google.com/o/oauth2/auth"),
        ProtocolVersion = ProtocolVersion.V20
      },
      _applicationId, 
      _secret)
      {
        AuthorizationTracker = new TokenManager()
      };


  var authState = oAuthClient.ProcessUserAuthorization();

  var accessToken = authState.AccessToken;
  var refreshToken = authState.RefreshToken;

  return View(new[] { accessToken, refreshToken });
}

何か案は?

編集:

認証コードを取得するには、上記と同じようにoAuthClientを設定し、次の方法を使用します。

oAuthClient.RequestUserAuthorization(new[] { "https://www.googleapis.com/auth/calendar" }, returnUrl);
4

1 に答える 1

1

私も同様の問題を抱えていましたが、HttpRequest と HttpResponse の処理を​​手作業でコーディングすることで解決しました。次のコードを参照してください: https://stackoverflow.com/a/11361759/29156

于 2012-07-06T12:06:10.583 に答える