當我使用Google.GData.Client
.NET庫並嘗試啓動OAuth
會話時,它將正常工作,直到會話過期。似乎當我做我的初始GetAccessToken
請求RefreshToken
值是null
。GData OAuthUtil.GetAccessToken不返回refresh_token值
第一步(Default.aspx的):
OAuth2Parameters parameters = new OAuth2Parameters();
//<<build parameters with keys and CLIENT_IDs and such>>
string authorizationUrl = OAuthUtil.CreateOAuth2AuthorizationUrl(parameters);
Response.Redirect(authorizationUrl);
第二步(oauth.aspx):
Session["ACCESS_CODE"] = Request.QueryString["code"];
Response.Redirect("Results.aspx");
步驟3(results.aspx)
if (Session["ACCESS_CODE"] == null)
Response.Redirect("Default.aspx");
parameters.AccessCode = Session["ACCESS_CODE"].To_String();
OAuthUtil.GetAccessToken(parameters);
Response.Write("OAuth Access Token: " + parameters.AccessToken);
Session["ACCESS_TOKEN"] = parameters.AccessToken;
Session["REFRESH_TOKEN"] = parameters.RefreshToken;
當我在此處檢查代碼時,我的RefreshToken == null
。正因爲如此,我不能叫
OAuthUtil.RefreshAccessToken(parameters);
沒有得到值的誤差不能null
。
這就是我的想法,但是當我第一次得到AuthToken時,我似乎沒有得到任何刷新代碼。我應該在auth重定向時尋找它嗎? – Lloyd
從https://accounts.google.com/b/0/IssuedAuthSubTokens?hl=zh_CN撤銷對您的應用的訪問權限,然後重試,您應該首次獲得刷新令牌 –
似乎這樣做。我一直在清理我的DB存儲值,顯然允許訪問後的第一個響應返回刷新令牌。現在我將它存儲在數據庫中,並且很好地哼唱。謝謝! – Lloyd