Ich versuche, die JSON eines Google-Tabellenblattes zu erhalten. Es hat bis vor einigen Tagen funktioniert. Für das Standardarbeitsblatt funktioniert es weiterhin, aber nicht für alle anderen Arbeitsblätter.
Dies ist die Arbeits-URL für das Standardarbeitsblatt: https://spreadsheets.google.com/feeds/list/1caRqAA1TyBoZ0eVZvvKheEBh9SGRmQII4qih9urY70k/od6/public/full?alt=json
Dies ist die URL für das Arbeitsblatt, das nicht mehr funktioniert: https://spreadsheets.google.com/feeds/list/1caRqAA1TyBoZ0eVZvvKheEBh9SGRmQII4qih9urY70k/1416241220/public/full?alt=json
Die Fehlermeldung lautet Invalid query parameter value for grid_id.
Der einzige Unterschied besteht im Arbeitsblattparameter (od6
vs. 1416241220
).
Irgendwelche Ideen, warum dieser Fehler plötzlich auftritt?
ChrisPetersons Anmerkung:
Sie können die Positionsnummer des Arbeitsblatts verwenden (1 für das erste/Standard-Arbeitsblatt, 2 für das zweite Arbeitsblatt).
Ursprüngliche Antwort
Ich bin auf das gleiche Problem gestoßen und habe es geschafft, meinen Ausweg zu finden ... Es scheint, als hätten sie kürzlich die ID für jedes Arbeitsblatt geändert.
Die neue ID finden Sie im Folgenden
https://spreadsheets.google.com/feeds/worksheets/YOUR_SPREADSHEET_ID/private/full
Ich habe etwas wie o3laxt8
zwischen <id>
-Tags
Ps: od6
- unddefault
-Werte funktionieren immer und leiten zum ersten Arbeitsblatt Ihres Dokuments weiter.
Joe Germuska 'Anmerkung:
od6
funktioniert nicht mehr
Scheint wieder zu funktionieren.
Ich möchte ein konkretes Beispiel mitteilen, da es genug verwirrende Anweisungen gibt, einschließlich der akzeptierten Antwort- und Arbeitsblatt-IDs und wo sie nicht offensichtlich sind.
Hier ist ein Dokument, das ich veröffentlicht habe und jeder, der über den Link verfügt, kann es anzeigen:
https://docs.google.com/spreadsheets/d/1QDWpycJJFA-UAiSPIv-icJ4UZhbEmuN8wxxag83SE1c/edit?usp=sharing
Das Dokument muss korrekt veröffentlicht werden. Es gibt zwei Schaltflächen zum Veröffentlichen, und die erste funktioniert für diese Aufgabe nicht. Verwenden Sie die zweite.
Das Dokument KEY ist wichtig. Besorgen Sie sich den Schlüssel zwischen dem /d/
und dem /edit
in der URL. In meinem Beispiel lautet der Schlüssel 1QDWpycJJFA-UAiSPIv-icJ4UZhbEmuN8wxxag83SE1c
.
Zweitens verwenden Sie den folgenden URL-Stil und ersetzen Sie KEY durch Ihren eigenen:
https://spreadsheets.google.com/feeds/list/KEY/od6/public/values?alt=json
Meine Beispiel-URL verlinkt direkt zu veröffentlichtem Json:
https://spreadsheets.google.com/feeds/list/1QDWpycJJFA-UAiSPIv-icJ4UZhbEmuN8wxxag83SE1c/od6/public/values?alt=json
Wenn das Arbeitsblatt mehrere Blätter (oder Registerkarten) enthält, ersetzen Sie od6
in der URL durch eine Nummer. Mein Beispiel hat zwei Registerkarten, also gibt es zwei URLs, die jeder der Registerkarten entsprechen. Ich ersetze einfach od6
durch 1
und 2
, abhängig von der Reihenfolge der Blätter:
Im Falle eines Arbeitsblatts, bei dem die Registerkarten häufig neu angeordnet werden, ist es möglich, die ID eines bestimmten Arbeitsblatts abzurufen und diese anstelle von geordneten Nummern zu verwenden. Ich habe diesen Ansatz zuerst von diesem post oder this post erfahren:
In Kürze würden Sie mit Ihrem KEY eine private URL reformieren:
https://spreadsheets.google.com/feeds/worksheets/KEY/private/full
Dies funktioniert nur in einem Browser, in dem Sie mit einem Konto mit Berechtigungen bei Google Drive angemeldet sind.
Als Nächstes müssen Sie XML durchsuchen, um Ihre Blatt-IDs zu finden:
Ersetzen Sie den vorherigen 1
und 2
durch die IDs. Beispiel:
Tab 1 (die erste Arbeitsblatt-ID in einem neuen Google-Sheet ist standardmäßig immer od6, unabhängig von der Reihenfolge der Tabs): https://spreadsheets.google.com/feeds/list/1QDWpycJJFA-UAiSPIv-icJ4UZhbEmuN8wxxag83SE1c/od6/public/values? alt = json
Die neue ID finden Sie im Folgenden
https://spreadsheets.google.com/feeds/worksheets/YOUR_SPREADSHEET_ID/private/full