3

Android で Google Play Services SDK を使用してオフライン アクセスをリクエストする方法はありますか? 生の HTTP APIには更新トークンを要求することでこれを行うオプションがあることは知っていますが、新しいGoogle Play サービス sdkを介してそれを行う方法が見つかりませんでした。

新しい SDK は、メソッドを使用してアプリにアクセス トークンを提供しますGoogleAuthUtil.getToken()が、アクセス トークンは 1 時間ごとに期限切れになります。生の http 要求を作成し、ユーザーに Web ビューまたはブラウザーからサインインさせることもできますが、sdk を使用してネイティブにサインインさせる方法をお勧めします。これは、ユーザーにとってはるかに優れたエクスペリエンスであるためです。

4

1 に答える 1

1

近くと遠くのGoogleドキュメントを検索すると、これが可能であるように見えます. Google では、これを「ハイブリッド アプリ」カテゴリで「クロスクライアント ID」と呼んでいます。

メソッドに渡すスコープ パラメータの文字列をマッサージしてGoogleAuthUtil.getToken(...)、OAuth2 トークンではなく「認証コード」を返すように誘導できるようです。(これらの違いについては、このチャートが役に立ちました。)

詳細はこちら、具体的には「Android アプリが Web バックエンドのオフライン アクセスを取得する」というタイトルの最後のセクションです。

以下を「スコープ」文字列として getToken に渡す必要があるようです。

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

次に、ドキュメントはこれを主張します:

この場合、GoogleAuthUtil.getToken() はまず、ユーザーがこのプロジェクトに 2 つのスコープへのアクセスを許可していることを要求します。これが問題ないと仮定すると、OAuth トークンではなく、アクセス トークンと更新トークンと交換できる有効期間の短い認証コードが返されます。

免責事項:私はまだこれを自分で試していません。私たちの Android 開発者はすぐにそれを行います。これがあなたのために働いているかどうかを報告してください。

于 2013-07-12T01:31:22.863 に答える