Comment autoriser avec oauth 2.0 à partir de appscript pour Api Google?
Je suis en train de jouer autour avec AppScript et essayer d'obtenir un jeton d'accès oAuth 2.0.
Exemple de comment obtenir ce travail dans AppScript?
Vous devez vous connecter pour publier un commentaire.
Je suis en train de travailler sur un nettoyeur de tutorialized version de ce, mais ici, c'est un simple Résumé qui devrait vous donner un exemple de code sur la façon dont les choses se -
https://gist.github.com/4079885
Il manque encore de déconnexion, de la gestion d'erreur et le refresh_token capacité, mais au moins vous devriez être en mesure de se connecter et d'appeler un oAuth 2 protégé API de Google (dans ce cas c'est un profil de l'API).
Vous pouvez le voir en action ici -
https://script.google.com/macros/s/AKfycby3gHf7vlIsfOOa9C27z9kVE79DybcuJHtEnNZqT5G8LumszQG3/exec
La clé est d'utiliser oAuth 2 Serveur Web de flux. Jetez un oeil à
getAndStoreAccessToken
fonction dans les gist pour obtenir la clé de détails.J'espère avoir cette publiés dans les prochaines semaines, mais j'espère que cela vous aidera dans le temps de le dire.
Mise à JOUR - ajout d'info sur redirect_uri
Les secrets du client est liée à certains redirect Uri que le code d'autorisation est envoyée.
Vous avez besoin pour le mettre au - https://code.google.com/apis/console/
En surbrillance URI doit correspondre à la publication d'URI (se termine en /exec). Vous obtenez la publication de l'URI de l'éditeur de script en vertu de Publier -> Déployer des web app. Assurez-vous que vous enregistrez de nouvelles versions et de la publication des nouvelles versions lorsque vous apportez des modifications (publié URI reste le même).
401. That’s an error. Error: invalid_client no application name
lorsque j'appuie sur 'cliquez ici pour commencer'. À l'aide de votre lien fonctionne. Des idées?J'ai modifié l'exemple ci-dessus l'utilisation de la newish état jeton de l'API et de l'CacheService au lieu de UserProperties, qui est maintenant obsolète. À l'aide de l'état jeton API semble rendre les choses un peu plus sécurisé, comme l'url de callback va cesser d'accepter un état de jeton après un délai d'attente.
Les mêmes restrictions s'appliquent. Votre redirect Uri doivent être ajoutés à votre (script) projet dans le développement de l'console, le temps que vous avez à tirer sur le CLIENT_SECRET et CLIENT_ID à partir de la console et de les coller dans. Si vous travaillez dans un domaine, il ne semble pas y avoir de garanties sur ce que l'URL sera retourné par ScriptApp.la méthode getService().getUrl(), donc je me suis retrouvé essentiellement avoir à obtenir l'adresse dynamiquement, puis d'attendre pour échouer sur la la (seconde) de redirection, puis codé en dur l'résultant de l'URI.
https://gist.github.com/mclaughta/2f4af6f14d6aeadb7611
Notez que vous pouvez construire un OAuth2 de flux à l'aide de cette nouvelle API, mais ce n'est pas un exemple complet encore:
https://developers.google.com/apps-script/reference/script/script-app#newStateToken()
En particulier, vous ne devez pas passer de l'état directement à l' /usercallback URL vous-même, parce que le OAuth2 fournisseur de services est responsable de l'aller-retour de l '"état" du paramètre. (Au lieu de cela, vous passez de l'état de l'auth URL, et le fournisseur de service connecte automatiquement à l'URL de callback.)