3

有没有办法请求在Android上使用谷歌播放服务SDK离线访问?我知道raw HTTP api可以通过请求刷新令牌来做到这一点,但无法通过新的Google Play services sdk找到方法。谷歌播放服务SDK:请求在验证期间离线访问

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

回答

1

搜索近似和远处的Google文档,看起来好像这是可能的。 Google在其"Hybrid Apps"类别下称此“跨客户端标识”。

可以明显地按摩你传递到GoogleAuthUtil.getToken(...)方法将其哄到返回的“授权码”,而不是一个的OAuth2令牌范围的参数字符串。 (对于这些之间的差异,我发现this chart有帮助。)

详细信息是here,具体是最后一节标题为"Android app obtains offline access for Web back-end"

看来你需要在下面的 “范围” 的字符串传递给为gettoken:

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

的文档,然后声称这样的:

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

声明:我还没有尝试过,我们的Android开发人员会很快。请报告这是否适合你。