Si vous avez besoin de plusieurs scopes OAuth 2.0, utiliser une liste séparée par des espaces .
oauth2:https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.userinfo
Vous avez demandé un exemple de code, alors jetez un coup d'œil à la page Exemple de téléchargement de Google Docs et dans cette application, nous avons examiné le flux d'authentification effectué dans l'application cet exemple d'écran Android (ignorez qu'il s'agit de Google Docs, il autorise toujours d'abord). Vous pouvez obtenir l'application complète et l'exécuter dans un émulateur avec les API de Google présentes ou l'exécuter sur votre téléphone. Le flux de travail d'autorisation commence avec le clic sur le boutonAuthorize, Authorize() et vous êtes spécifiquement intéressé par cette méthode :
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
}
L'utilisateur obtient cet écran de demande d'accès :
Notez que vous utilisez le mécanisme OAuth2 "local", sans ouvrir de navigateur Web, mais en utilisant l'authentification fournie lors de la première activation du téléphone Android.
Notez également que l'utilisateur voit l'URL complète de l'étendue au lieu d'un nom amical, I n'ont pas trouvé un moyen de contourner ce problème et si vous le trouvez, ce serait formidable si vous pouviez partager la réponse.