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開發人員會很快。請報告這是否適合你。