.net GData OAuthUtil.GetAccessToken不返回刷新令牌值

.net GData OAuthUtil.GetAccessToken不返回刷新令牌值,.net,oauth,gdata,.net,Oauth,Gdata,当我使用Google.GData.Client.NET库并尝试启动OAuth会话时,它工作正常,直到会话过期。当我执行初始GetAccessToken请求时,refreshttoken值似乎是null 步骤1(default.aspx): 步骤3(results.aspx) 当我此时检查代码时,我的refreshttoken==null。因此我不能打电话 OAuthUtil.RefreshAccessToken(parameters); 在OAuth 2.0脱机流中,如果没有获得值为null

当我使用
Google.GData.Client
.NET库并尝试启动
OAuth
会话时,它工作正常,直到会话过期。当我执行初始
GetAccessToken
请求时,
refreshttoken
值似乎是
null

步骤1(default.aspx):

步骤3(results.aspx)

当我此时检查代码时,我的
refreshttoken==null
。因此我不能打电话

OAuthUtil.RefreshAccessToken(parameters); 

在OAuth 2.0脱机流中,如果没有获得值为null的错误,则您只能在用户第一次交换授权码并授予对您的应用程序的访问权限时收到刷新令牌。您应该将该刷新令牌存储在数据库中以供以后使用

如果在任何时候您需要用户的刷新令牌,但您的数据库中没有该令牌,或者您拥有的令牌已损坏或被吊销,则必须将该用户发送回授权页面,以便该用户可以再次授予访问权限并向您提供新的刷新令牌


报告详细解释了这一过程。另外,还有一个可以用作参考的代码。

这就是我的想法,但是当我第一次获得AuthToken时,似乎没有得到任何刷新代码。我应该在身份验证重定向时查找它吗?从中撤消对应用程序的访问,然后重试,您应该在第一次获得刷新令牌。我一直在清除我的DB存储值,很显然,允许访问后的第一个响应返回刷新令牌。现在,我将其存储在数据库中,并很好地运行。谢谢指向ASP.NET项目的链接是否仍然有效?它似乎把我带到另一个页面,那里似乎没有ASP.NET示例?
Session["ACCESS_CODE"] = Request.QueryString["code"];
Response.Redirect("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;
OAuthUtil.RefreshAccessToken(parameters);