google oauth2 C#:无刷新令牌

google oauth2 C#:无刷新令牌,c#,oauth-2.0,C#,Oauth 2.0,在我的C#应用程序中,我试图获取aouth2访问和刷新令牌: 在阶段:处理响应,当我打电话时,我应该得到如下结果: { "access_token":"1/fFAGRNJru1FTz70BzhT3Zg", "expires_in":3920, "token_type":"Bearer", "refresh_token":"1/xEoDL4iW3cxlI7yDbSRFYNG01kVKM2C-259HOF2aQbI" } 但我明白了 { "access_token":"1/f

在我的C#应用程序中,我试图获取aouth2访问和刷新令牌:

在阶段:处理响应,当我打电话时,我应该得到如下结果:

{
  "access_token":"1/fFAGRNJru1FTz70BzhT3Zg",
  "expires_in":3920,
  "token_type":"Bearer",
  "refresh_token":"1/xEoDL4iW3cxlI7yDbSRFYNG01kVKM2C-259HOF2aQbI"
}
但我明白了

{
  "access_token":"1/fFAGRNJru1FTz70BzhT3Zg",
  "expires_in":3920,
  "token_type":"Bearer",
}
因此:缺少刷新令牌。我进行了调试,我确信我找到了api方法:fetchaccessandrefreshttokens,但我没有刷新令牌

PS:我使用的是201306 API


有什么想法吗?

在API中,在OAuth2ProviderForApplications.cs文件中,在GetAuthorizationUrl()方法中,如果在字符串中添加&approval\u prompt=force,则在第100行:

返回string.Format(“{0}?scope={1}&state={2}&redirect\u uri={3}&response\u type={4}&”+ “客户端\u id={5}&访问\u类型={6}&批准\u提示=force

但这是一个可怕的解决方法,而且可能会造成apache许可证问题


如何找到:在google oauth2 playway()中,此参数(approval\u prompt=force)已设置,如果忽略此参数,则不会提供刷新令牌。

似乎与以下问题相同:请参见mariuss的答案: