sheet - Recuperar la hoja de cálculo de Google Hoja de cálculo JSON
php google sheets (2)
Intento recibir el JSON de una hoja de cálculo de Google. Funcionó hasta hace unos días. Para la hoja de trabajo predeterminada todavía funciona, pero no para todas las demás hojas de trabajo.
Esta es la URL de trabajo para la hoja de trabajo predeterminada: https://spreadsheets.google.com/feeds/list/1caRqAA1TyBoZ0eVZvvKheEBh9SGRmQII4qih9urY70k/od6/public/full?alt=json
Y esta es la URL de la hoja de trabajo que dejó de funcionar: https://spreadsheets.google.com/feeds/list/1caRqAA1TyBoZ0eVZvvKheEBh9SGRmQII4qih9urY70k/1416241220/public/full?alt=json
El mensaje de error es un Invalid query parameter value for grid_id.
La única diferencia es el parámetro de la hoja de trabajo ( od6
vs 1416241220
).
¿Alguna idea sobre por qué ese error ocurre de repente?
Me gustaría compartir un ejemplo concreto porque me parece que hay suficientes instrucciones confusas que incluyen las respuestas aceptadas y los ID de la hoja de trabajo y dónde colocarlos no es obvio.
Aquí hay un documento que publiqué y cualquier persona con el enlace puede ver:
https://docs.google.com/spreadsheets/d/1QDWpycJJFA-UAiSPIv-icJ4UZhbEmuN8wxxag83SE1c/edit?usp=sharing
El documento debe ser publicado correctamente. Hay dos botones Publicar y el primero no funciona para esta tarea. Usa el segundo.
La clave del documento es importante. Obtenga la CLAVE entre la /d/
y la /edit
en la url. En mi ejemplo, la clave es 1QDWpycJJFA-UAiSPIv-icJ4UZhbEmuN8wxxag83SE1c
.
Segundo, use el siguiente estilo de URL, reemplazando KEY con el suyo propio:
https://spreadsheets.google.com/feeds/list/KEY/od6/public/values?alt=json
Mi ejemplo url enlaza directamente con json publicado:
https://spreadsheets.google.com/feeds/list/1QDWpycJJFA-UAiSPIv-icJ4UZhbEmuN8wxxag83SE1c/od6/public/values?alt=json
Finalmente, si la hoja de trabajo tiene varias hojas (o pestañas), reemplace od6
en la url con un número. Mi ejemplo tiene dos pestañas, por lo que hay dos URL correspondientes a cada pestaña. Simplemente reemplacé od6
con 1
y 2
dependiendo del orden de las hojas:
En el caso de una hoja de trabajo donde las pestañas se reordenan con frecuencia, es posible obtener el ID de una hoja determinada y usarla en lugar de números ordenados. Aprendí por primera vez de este enfoque de este post o este post :
En resumen, reformaría una URL privada con su CLAVE:
https://spreadsheets.google.com/feeds/worksheets/KEY/private/full
Esto solo funciona en un navegador en el que haya iniciado sesión en Google Drive en una cuenta con permisos.
A continuación, debe seleccionar XML para encontrar las ID de sus hojas:
Reemplace los 1
y 2
con los ID, por ejemplo:
Pestaña 1 (el primer id de la hoja de trabajo en una nueva hoja de Google siempre es od6 de forma predeterminada, sin importar el orden de las pestañas): https://spreadsheets.google.com/feeds/list/1QDWpycJJFA-UAiSPIv-icJ4UZhbEmuN8wxxag83SE1c/od6/public/values?alt=json
Nota de ChrisPeterson:
Puede usar el número de posición de la hoja de trabajo (1 para la primera hoja de cálculo / predeterminado, 2 para la segunda hoja de trabajo).
Respuesta original
Encontré el mismo problema y logré encontrar la salida. Parece que recientemente cambiaron la identificación de cada hoja de trabajo.
Puede encontrar la nueva identificación en la siguiente
https://spreadsheets.google.com/feeds/worksheets/YOUR_SPREADSHEET_ID/private/full
Tengo algo como o3laxt8
entre etiquetas <id>
Ps: od6
y default
valores default
siempre funcionarán y se redirigirán a la primera hoja de trabajo de su documento.
Joe Germuska ''nota:
od6
ya no funciona
Parece volver a funcionar.