Obtenir un jeton d'autorisation Google Oauth depuis Android – retourner avec invalid_scope / Erreur inconnue

J'essaie d'utiliser Google Oauth pour authentifier les utilisateurs sur mon application Android. Ensuite, j'aimerais l'envoyer à mon serveur d'application afin qu'il puisse se connecter à tout moment avec le calendrier Google.

J'ai essayé d'utiliser GoogleAuthUtil.getToken(getApplicationContext(), mAccountName, mScope);

  • Comment charger des vignettes vidéo à l'aide de la bibliothèque Picasso carrée?
  • Solution pour les cours en double dans les arômes de Gradle et principal
  • Android utilise V8 sans WebView
  • Bouton de lecture / pause du lecteur multimédia Android
  • Comment puis-je éteindre l'écran dans l'émulateur Android?
  • Vérifier si une colonne existe dans une base de données d'application dans Android
  • Suivant cet article: https://developers.google.com/accounts/docs/CrossClientAuth

    Quand je l'utilise avec la portée mScope = "oauth2:https://www.googleapis.com/auth/calendar https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile"; Je reçois un jeton, valable pour une heure

    Mais quand j'essaie d'obtenir un code d'autorisation (afin que je puisse obtenir un jeton de rafraîchissement valable plus longtemps, en utilisant mScope2 ="oauth2:server:client_id:{CLIENT_ID}.apps.googleusercontent.com"+ ":api_scope:https://www.googleapis.com/auth/calendar https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile";

    Je reçois des exceptions "invalid_scope" ou "Unknown".

    Qu'est-ce que je fais mal?

    EDIT: OK, après avoir créé une nouvelle application sur la console Google API et en ajoutant plus.login à la portée, j'obtiens un code, mais pour une raison quelconque, mon serveur ne peut pas résoudre ce jeton. Lorsque l'attachement pour résoudre le serveur obtient une erreur sur l'URL de redirection. BTW, quand je fais le flux Web avec les mêmes paramètres, cela fonctionne.

  • Y a-t-il un équivalent #ifdef ANDROID à #ifdef WIN32
  • Format personnalisé pour un intervalle de temps relatif
  • Comment ajouter l'auditeur à l'autocomplétextview, Android?
  • Détection de glissement pour chaque ligne de liste
  • Impossible de résoudre la cible 'android-17'
  • Scaling ImageView à l'anneau du périphérique
  • 3 Solutions collect form web for “Obtenir un jeton d'autorisation Google Oauth depuis Android – retourner avec invalid_scope / Erreur inconnue”

    OK, j'ai trouvé la solution, je m'attendais à ce que Google dispose d'une documentation beaucoup mieux sur le travail avec Google Oauth et Android. Quelques choses que vous devez savoir pour travailler avec Android et un jeton hors ligne

    1. Lorsque vous créez Google Client ID Ne créez pas une application de service avant de créer une application Web

    2. Doit inclure https://www.googleapis.com/auth/plus.login dans votre champ d'application

    3. Le plus étrange, pour résoudre le code d'autorisation unique sur mon serveur, j'ai dû utiliser l'URL de redirection à partir des détails de l'ID de client Android (qui ne ressemble même pas à une URL) et non à partir des détails du client Web sur la console API Google.

    Cette chaîne de portée n'est documentée que lorsqu'elle est passée à GoogleAuthUtil (), voir http://developer.android.com/reference/com/google/android/gms/auth/GoogleAuthUtil.html , sur Android. Mais ce serait cool s'il fonctionnait sur iOS aussi; Notre infrastructure est un peu derrière où nous sommes sur Android.

    Il vous suffit de suivre les étapes / formats appropriés pour spécifier les étendues. Trouvez-les ici https://developers.google.com/android/guides/http-auth#SpecifyingScopes

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.