Android 无法使用google OAuth 2获取刷新令牌

Android 无法使用google OAuth 2获取刷新令牌,android,oauth,oauth-2.0,google-api,access-token,Android,Oauth,Oauth 2.0,Google Api,Access Token,形势 我有一个简单的android应用程序,用户可以通过RESTAPI从中获取数据。为此,我使用OAuth2授权来获取访问令牌和刷新令牌。我的应用程序中有网络视图,它将显示登录屏幕和同意屏幕。我计划从web视图获取访问令牌,并将其用于进一步的API调用。我正在使用来执行我的http调用。我使用以下查询参数 "client_id" = CLIENTID "client_secret" = SECRET "code" = 4/XXXXXXXXXX //Code got from redirect

形势

我有一个简单的android应用程序,用户可以通过RESTAPI从中获取数据。为此,我使用OAuth2授权来获取访问令牌和刷新令牌。我的应用程序中有网络视图,它将显示登录屏幕和同意屏幕。我计划从web视图获取访问令牌,并将其用于进一步的API调用。我正在使用来执行我的http调用。我使用以下查询参数

"client_id" = CLIENTID
"client_secret" = SECRET
"code" = 4/XXXXXXXXXX  //Code got from redirect url
"grant_type" = "authorization_code"  
"access_type" = "offline"
"approval_prompt" = "force"
"redirect_uri" = REDIRECT_URL
到目前为止还不错。但当我使用上述查询参数执行post请求时,我得到以下响应

{
  "access_token": "ya29.XXXXXXXXXXXXXX",
  "token_type": "Bearer",
  "expires_in": 3599,
  "id_token": "XXXXXXXXXX"
}
问题

刷新令牌在哪里?我需要刷新令牌,因为我以后无法使用访问令牌通过应用程序进行API调用,我不希望用户每次都获得访问令牌

我尝试过的


我已经按照帖子中的说明进行了操作,并尝试从设置中撤销对应用程序的权限。我也尝试过使用不同的谷歌账户,以防出现许可问题,但仍然没有成功。我也尝试过删除查询参数“approval\u prompt”和“grant\u type”,但也没有帮助

您需要提供
access\u type=offline
来请求刷新令牌,而不是在授权请求中指定
grant\u type=offline

我在搜索并敲击头部5-6小时后得到了答案。答案救了我!回答人们在未来寻找的问题


在请求访问令牌而不是交换访问令牌时,添加“访问类型”=“脱机”查询,即在请求同意的URL中

对不起,我写的时候打错了。我已经编辑了这个问题。“访问类型=脱机”查询已经存在!