Warum gibt mein Apps-Skript, das als ausführbare API bereitgestellt wurde, die Berechtigung "Verweigert"?

8

Ich habe ein Skript im Skript-Editor erstellt und es als "Als ausführbare API bereitstellen" veröffentlicht. Innerhalb dieses Skripts habe ich meinem Blatt eine doc_id zur Verfügung gestellt und eine Funktion definiert, um Daten von diesem Blatt zu erhalten.

Ich ging dann zu Ссылка , um die Ausführungs-API zu testen. Ich habe die Bereiche hinzugefügt, die App autorisiert und es versucht. Ich erhalte die folgende Fehlermeldung:

%Vor%

Kann mir jemand sagen, was ich falsch mache?

    
Bellave Jayaram 03.10.2015, 08:24
quelle

6 Antworten

20

Stellen Sie sicher, dass das App-Skript dem richtigen Entwicklerkonsolenprojekt zugeordnet ist.

Das Skript sollte mit der Projekt-ID der Entwicklerkonsole verknüpft sein, die der verwendeten Client-ID von OAuth 2.0 entspricht (in diesem Entwicklerkonsolen-Projekt sollte auch die API "API zur Anwendungsscriptausführung" aktiviert sein).

Um das Entwicklerkonsolenprojekt für ein App-Skript zu ändern, wählen Sie den folgenden Menüeintrag: Ressourcen & gt; Entwicklerkonsolenprojekt ...

Geben Sie auf diesem Bildschirm die Projektnummer für Ihre Entwicklerkonsole ein.

    
Farhad Khairzad 08.10.2015, 06:32
quelle
7

Auch wenn alles in Ordnung ist, können Sie diesen Fehler von "devMode":true erhalten. Deshalb habe ich einen halben Tag verschwendet, als ich versuchte, für andere Benutzer bereitzustellen.

Nur für die zukünftige Referenz.

    
goodhyun 12.05.2016 14:03
quelle
3

Sie müssen nur den Benutzer des Dienstkontos als Editor für das Projekt hinzufügen

Die E-Mail aus dem hinzuzufügenden Dienstkonto sieht ungefähr so ​​aus {project-name}@{project-name}.iam.gserviceaccount.com

    
chemdrew 26.10.2016 15:34
quelle
2

Ich habe eine Mischung aus all Ihren Vorschlägen gemacht, außerdem musste ich die nicht 'veraltete' ID des Projekts verwenden. Wenn ich das Skript veröffentliche, gibt es mir eine ID, die ich erfolgreich verwendete, solange der Besitzer die Routine ausführt, und nur innerhalb von Google Chrome (Wenn ich es auf Edge versuche, schlägt es fehl). Wenn ich es veröffentliche und es mit einem anderen Benutzer versuche, hört es auf zu arbeiten. Ich öffne das Skript, gehe zu Datei / Projekt Eigenschaften und kopiere stattdessen die längere Skript ID. Die Routine beginnt dann für jeden Benutzer zu arbeiten. Im folgenden Bild unterstreiche ich den Schlüssel, der nur für Entwickler arbeitet, in Rot und in Grün den Schlüssel, der für alle Benutzer funktioniert (sie sind in Purpose geschnitten und meine Umgebung ist in Spanisch, so dass die tatsächlich übersetzten Optionen variieren können, sorry)

Ich glaube, es ist eine Zusammenfassung wert:

  1. Ich folge den Anweisungen unter " Verwendung der Ausführungs-API " und Schnellstart , um mein Skript als Ausführungs-API zu veröffentlichen. (Erstellen Sie das Skript, aktivieren Sie die Google Apps Script-Ausführungs-API, veröffentlichen Sie als ausführbare API mit Access für alle)
  2. Ich habe das Skript für alle sichtbar gemacht, unter Datei / Freigabe:
  3. Ich habe sichergestellt, dass devMode bei meinem Anruf nicht aktiviert wurde. Hier der JavaScript-Aufruf snipet:
  4. Ich habe sichergestellt, dass alle Bereiche im Projekt während der OAuth-Anfrage enthalten waren:
  5. Ich muss ein paar Minuten warten, um alle Sicherheitsrechte zu erhalten (d. h. OAuth-Anmeldeinformationen)

Dies sind im Grunde alle erforderlichen Schritte, die ich ausführen musste, um das Skript zu starten und auszuführen. Ich hoffe es hilft. Schließlich möchte ich, dass Sie sehen, was ich gesehen habe, als es fehlgeschlagen ist und wann es gelungen ist:

Danke!

    
Chesare 15.06.2017 19:04
quelle
1

Ich habe auch mit dem Fehler konfrontiert und alles wurde entsprechend verknüpft ... Nach einiger Zeit der Untersuchung fand ich heraus, dass Blatt sollte von Link geteilt werden . Dies ist eine Einschränkung von googleapis v4.

    
D.Dimitrioglo 04.04.2017 13:51
quelle
0

Ich hatte das gleiche Problem mit den Berechtigungen und löste es, indem ich den Status meines Google-Fensters öffentlich änderte. Jetzt kann ich Daten mit GET-Methode

lesen     
victor 17.06.2016 05:39
quelle