7

私の Android アプリは、認証コードをサーバーに送信して、サーバーがそれを使用してユーザーの Google ドライブ アカウントのアクセス トークンを取得できるようにする必要があります。私は認証コードを取得する方法を見つけようとしていましたが、Google API のドキュメント ( Using OAuth 2.0 for Installed Applications ) でこれを見つけました:

このシーケンスは、アプリケーションが必要とする Google API アクセスのタイプを示す一連のクエリ パラメーターを使用して、ブラウザー (システム ブラウザーまたはアプリケーションに Web ビューとして組み込まれている) を Google URL にリダイレクトすることから始まります。他のシナリオと同様に、Google はユーザー認証と同意を処理しますが、シーケンスの結果は認証コードです。承認コードは、ブラウザーのタイトル バーまたはクエリ文字列パラメーターとして返されます (要求で送信されたパラメーターによって異なります)。

認証コードを受け取った後、アプリケーションはコードをアクセス トークンとリフレッシュ トークンに交換できます。アプリケーションは、この交換中に client_id と client_secret (アプリケーションの登録時に取得) と認証コードを提示します。更新トークンを受信すると、アプリケーションはそれを将来の使用のために保存する必要があります。アクセス トークンにより、アプリケーションは Google API にアクセスできるようになります。

私が見た Android の例では、アクセス トークンを直接取得しているように見えるため、Android アプリでこの認証コードを取得する方法がわかりません。私は Android AccountManager クラスを見ており、メソッド getAuthToken がありますが、これは認証コードではなくアクセス トークンを参照しているようです。

では、サーバーと共有できる認証コードを取得するにはどうすればよいでしょうか。可能であれば、いくつかのサンプルコードをいただければ幸いです。これが不可能な場合、可能な回避策は何ですか?

4

2 に答える 2

5

Cross-client Identityドキュメントをご覧になることをお勧めします。これにより、ユーザー トークンをやり取りする必要がなくなります。

于 2013-05-24T00:20:32.550 に答える