Google Play服务sdk:在身份验证期间请求离线访问

时间:2013-03-20 01:52:33

标签: android oauth-2.0 google-oauth google-play-services google-authentication

有没有办法在Android上使用Google Play服务sdk请求离线访问?我知道raw HTTP api可以通过请求刷新令牌来执行此操作,但无法通过新的Google Play services sdk找到方法。

新的sdk使用GoogleAuthUtil.getToken()方法为应用程序提供访问令牌,但访问令牌每小时到期。我可以制作原始的http请求并让用户从Web视图或浏览器登录,但更喜欢使用sdk本地执行此操作,因为这对用户来说是一种更好的体验。

1 个答案:

答案 0 :(得分:1)

搜索近处和远处的Google文档,看起来确实如此。 Google将此“跨客户身份”称为"Hybrid Apps"类别。

你可以显然按下你传递给GoogleAuthUtil.getToken(...)方法的范围参数的字符串,以诱使它返回“授权代码”而不是OAuth2令牌。 (对于这些之间的差异,我发现this chart很有帮助。)

详细信息为here,特别是标题为"Android app obtains offline access for Web back-end"的最后一部分。

您似乎需要将以下内容作为“scope”字符串传递给getToken:

oauth2:server:client_id:<your_server_client_id>:api_scope:<scope_url_1> <scope_url_2> ...

然后,文件声称:

  

在这种情况下,GoogleAuthUtil.getToken()将首先要求   用户已授权此项目访问这两个范围。   假设这没关系,它将返回,而不是OAuth令牌,而是a   短期授权代码,可以交换访问权限   令牌和刷新令牌。

免责声明:我自己还没试过;我们的Android开发人员将很快。请报告这是否适合您。