J'ai créé un script dans l'éditeur de script et l'ai publié en tant que "Déployer en tant qu'exécutable d'API". Dans ce script, j'ai fourni un doc_id à ma feuille et défini une fonction pour obtenir les données de cette feuille.
Je suis ensuite allé sur https://developers.google.com/apps-script/execution/rest/v1/scripts/run pour tester l'API d'exécution. J'ai ajouté les portées, autorisé l'application et essayé. Je reçois le message d'erreur suivant:
"error": {
"code": 403,
"message": "The caller does not have permission",
"status": "PERMISSION_DENIED"
}
Quelqu'un peut-il me dire ce que je fais mal?
Assurez-vous que le script d'application est associé au projet de console de développement approprié.
Le script doit être associé à l'ID de projet de la console de développement correspondant à l'ID de client OAuth 2.0 utilisé (l'option "API d'exécution de script Apps" doit également être activée dans ce projet de console de développement).
Pour modifier le projet de la console de développement pour un script d'application, sélectionnez l'élément de menu suivant: Ressources> Projet de la console de développement ...
Sur cet écran, entrez le numéro de projet de votre console de développement.
Même si tout va bien, vous pouvez obtenir cette erreur avec "devMode":true
. Grâce à cela, j'ai perdu une demi-journée lorsque j'ai essayé de déployer pour d'autres utilisateurs.
Juste pour la référence future.
Il vous suffit d'ajouter l'utilisateur du compte de service en tant qu'éditeur sur le projet.
L'e-mail du compte de service à ajouter ressemble à quelque chose comme ceci {project-name}@{project-name}.iam.gserviceaccount.com
J'ai fait un mélange de toutes vos suggestions et je devais utiliser l'ID non obsolète du projet. Lorsque je publie le script, il me donne un identifiant que j'utilisais avec succès tant que le propriétaire exécutait la routine, et uniquement dans Google Chrome (si je l'essaie sur Edge, cela échoue). Lorsque je publie et l'essaie avec un autre utilisateur, il ne fonctionne plus. J'ouvre le script, je vais dans les propriétés du fichier/projet et je copie le plus long ID de script. La routine commence alors à fonctionner pour n'importe quel utilisateur. Dans l'image suivante, je souligne en rouge la clé qui fonctionne uniquement pour le développeur, et en vert la clé qui fonctionne pour tous les utilisateurs (ils sont configurés dans leur contexte et mon environnement est en espagnol, les options traduites peuvent varier, désolé).
Je crois qu'il vaut la peine de faire un résumé:
En gros, ce sont toutes les étapes nécessaires que je devais suivre pour que le script soit opérationnel. J'espère que ça aide. Enfin, je voudrais que vous voyiez ce que j’ai vu quand il a échoué et quand il a réussi:
Je vous remercie!
J'ai également fait face à l'erreur et tout était associé à la suite ... Après un certain temps d'investigation, j'ai découvert que feuille devait être partagée par link . Ceci est une limitation de googleapis v4.
J'ai eu le même problème d'autorisations et je l'ai résolu en modifiant le statut de ma fiche google en public. Maintenant, je peux lire les données en utilisant la méthode GET