複数の OAuth 2.0 スコープが必要な場合は、スペース区切りのリストを使用します。
oauth2:https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.userinfo
サンプル コードを求められたので、Google Docs Upload Sampleアプリケーションを見てください。このアプリケーションでは、このサンプルの Android 画面で行われる認証フローを見てください(Google Docs に関するものであることは無視してください。それでも最初に承認します)。アプリケーション全体を取得して、Google API が存在するエミュレーターで実行するか、携帯電話で実行できます。認証ワークフローは、buttonAuthorize のクリック、Authorize() で始まります。このメソッドに特に関心があります。
private void gotAccount(Account account)
{
Bundle options = new Bundle();
accountManager.getAuthToken(
account, // Account retrieved using getAccountsByType()
"oauth2:https://www.googleapis.com/auth/userinfo.email oauth2:https://www.googleapis.com/auth/userinfo.userinfo", // Auth scope
//"writely", // Auth scope, doesn't work :(
options, // Authenticator-specific options
this, // Your activity
new OnTokenAcquired(), // Callback called when a token is successfully acquired
null); // Callback called if an error occurs
}
ユーザーは次のアクセス要求画面を取得します。
これは「ローカル」の OAuth2 メカニズムを使用していることに注意してください。Web ブラウザーを開くのではなく、Android フォンを最初にアクティブ化したときに提供された認証を使用しています。
また、ユーザーにはわかり やすい名前ではなく、スコープの完全な URL が表示されることに注意してください。