J'ai généré une clé de serveur dans API Manager et tenté d'exécuter les opérations suivantes sur mon Mac:
curl 'https://sheets.googleapis.com/v4/spreadsheets/MySheetID?ranges=A1:B5&key=TheServerKeyIGeneratedInAPIManager'
Mais voici ce qu'il retourne:
{
"error": {
"code": 403,
"message": "The caller does not have permission",
"status": "PERMISSION_DENIED"
}
}
Qu'est-ce que je fais mal ici?
Je sais qu'il est un peu tard pour répondre, mais pour d'autres personnes aux prises avec le même problème.
Juste changez l’autorisation de la feuille en public sur votre lecteur afin de pouvoir y accéder sans authentification via des appels API.
Pour changer d'accès:
Envoyer une demande d'API pour récupérer les données des feuilles sans authentification.
Remarque: si la feuille contient des données sensibles, il est dangereux de la rendre publique et de le faire plutôt avec un accès authentifié.
Pour résoudre ce problème, essayez de:
Cela a fonctionné pour moi :)
Assurez-vous de faire attention au commentaire de @ KishanPatel:
De plus, vous pouvez partager cette fiche avec des emails spécifiques, par ex. ton service compte (projet) email. "client_email": "[email protected]", cela permettra accéder feuille par votre script.
Le moyen le plus simple est de réparer en utilisant gcloud cli. Plus de documents ici https://cloud.google.com/pubsub/docs/quickstart-cli#before-you-begin
Lorsque vous pourrez utiliser cet outil, appelez
gcloud init
puis vérifiez votre projet actif et vos informations d'identification
gcloud config configurations list
Si ce n'est pas le cas, assurez-vous d'être authentifié avec le bon compte:
gcloud auth list
* account 1
account 2
Changer sur le compte du projet sinon:
gcloud config set account `ACCOUNT`
Selon le compte, la liste de projets sera différente:
gcloud projects list
- project 1
- project 2...
Passer au projet prévu:
gcloud config set project `PROJECT NAME`
Ensuite, créez les informations d'identification par défaut de l'application avec gcloud auth application-default login
, puis google-cloud détectera automatiquement ces informations d'identification.