2012-06-27 280 views
5

我正在嘗試使用Google的Calendar API來演示OAuth2集成,我們需要使用另一個第三方。我正在使用DotNetOpenAuth庫,並且我已經能夠獲得最初重定向到谷歌的允許/拒絕提示並獲得授權碼。獲取OAuth2刷新令牌

我現在需要獲取訪問令牌和刷新令牌,但我似乎只能獲取訪問令牌,刷新令牌爲空。

這是谷歌重定向回用戶接受後,或拒絕我的控制器的操作方法:

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); 
+0

請修改您的問題以包括您提交原始授權請求的方式。 –

+0

@AndrewArnott完成;它只是對'RequestUserAuthorization'的一次調用。 – Andy

+0

您是否可以在請求中包含更多上下文?例如,如何構建用於發送請求的'oAuthClient'? –

回答