Ich habe im API Manager einen Serverschlüssel generiert und versucht, Folgendes auf meinem Mac auszuführen:
curl 'https://sheets.googleapis.com/v4/spreadsheets/MySheetID?ranges=A1:B5&key=TheServerKeyIGeneratedInAPIManager'
Aber genau das gibt es zurück:
{
"error": {
"code": 403,
"message": "The caller does not have permission",
"status": "PERMISSION_DENIED"
}
}
Was mache ich hier falsch?
Ich weiß, es ist etwas spät, um zu antworten, aber für andere Menschen, die mit dem gleichen Problem kämpfen.
Ändern Sie einfach die Berechtigung des Arbeitsblatts in public auf Ihrem Laufwerk, damit Sie ohne Authentifizierung über API-Aufrufe darauf zugreifen können.
Zugang ändern:
Senden Sie eine API-Anforderung zum Abrufen von Daten aus Arbeitsblättern ohne Authentifizierung.
Hinweis: Wenn das Blatt sensible Daten enthält, ist es nicht sicher, es öffentlich zu machen und es mit authentifiziertem Zugriff zu tun.
Um dieses Problem zu lösen, versuchen Sie Folgendes:
Es hat für mich funktioniert :)
Achten Sie unbedingt auf den Kommentar von @ KishanPatel:
Sie können dieses Arbeitsblatt auch mit bestimmten E-Mail-Nachrichten teilen. dein Dienst Konto- (Projekt-) E-Mail. "client_email": "[email protected]", Dies erlaubt. auf das Blatt durch Ihr Skript zugreifen.
Der einfachste Weg ist die Verwendung von gcloud cli. Weitere Dokumente hier https://cloud.google.com/pubsub/docs/quickstart-cli#before-you-begin
Wenn Sie dieses Tool verwenden können, rufen Sie an
gcloud init
Überprüfen Sie dann Ihr aktives Projekt und Ihre Anmeldeinformationen
gcloud config configurations list
Wenn es nicht in Ordnung ist, stellen Sie sicher, dass Sie mit dem richtigen Konto authentifiziert sind:
gcloud auth list
* account 1
account 2
Ändern Sie das Konto des Projekts, falls nicht:
gcloud config set account `ACCOUNT`
Je nach Konto unterscheidet sich die Projektliste:
gcloud projects list
- project 1
- project 2...
Zum geplanten Projekt wechseln:
gcloud config set project `PROJECT NAME`
Erstellen Sie anschließend Anwendungs-Standardanmeldeinformationen mit gcloud auth application-default login
und google-cloud erkennt solche Anmeldeinformationen automatisch.