Получение токена обновления OAuth2

Я пытаюсь использовать Google Calendar API для демонстрации интеграции OAuth2, которую нам нужно будет сделать с другой третьей стороной. Я использую библиотеку DotNetOpenAuth, и мне удалось получить начальное перенаправление в Google для запроса «Разрешить/запретить» и вернуть код авторизации.

Теперь мне нужно получить токен доступа и токен обновления, но мне кажется, что я получаю только токен доступа, токен обновления равен нулю.

Это мой метод действия контроллера, когда 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);
6
задан Andy 29 June 2012 в 12:29
поделиться