Подтвердить что ты не робот

Получение таблицы электронных таблиц Google JSON

Я пытаюсь получить JSON таблицы рабочих таблиц Google. Это работало несколько дней назад. Для листа по умолчанию он по-прежнему работает, но не для всех других рабочих листов.

Это рабочий URL для листа по умолчанию: https://spreadsheets.google.com/feeds/list/1caRqAA1TyBoZ0eVZvvKheEBh9SGRmQII4qih9urY70k/od6/public/full?alt=json

И это URL-адрес рабочего листа, который перестает работать: https://spreadsheets.google.com/feeds/list/1caRqAA1TyBoZ0eVZvvKheEBh9SGRmQII4qih9urY70k/1416241220/public/full?alt=json

Сообщение об ошибке Invalid query parameter value for grid_id.

Единственным отличием является параметр рабочей таблицы (od6 vs 1416241220).

Любые идеи о том, почему эта ошибка внезапно возникает?

4b9b3361

Ответ 1

Примечание ChrisPeterson:

Вы можете использовать номер позиции рабочего листа (1 для первого листа/по умолчанию, 2 для второго листа).

Оригинальный ответ

Я столкнулся с той же проблемой, и мне удалось найти выход. Похоже, что они недавно изменили идентификатор для каждого рабочего листа.

Новый идентификатор можно найти на следующем

https://spreadsheets.google.com/feeds/worksheets/YOUR_SPREADSHEET_ID/private/full

Я получил что-то вроде o3laxt8 между тегами <id>

Значения

Ps: od6 и default всегда будут работать и перенаправляться на первый рабочий лист вашего документа.

Примечание Джо Гермушки:

od6 больше не работает

Кажется, снова работает.

Ответ 2

Я хотел бы поделиться конкретным примером, потому что я нахожу, что есть достаточно запутанных инструкций, включая принятые ответы и идентификаторы рабочего листа, и где их размещать неочевидно.

Вот документ, который я опубликовал, и любой, у кого есть ссылка, может просмотреть:
https://docs.google.com/spreadsheets/d/1QDWpycJJFA-UAiSPIv-icJ4UZhbEmuN8wxxag83SE1c/edit?usp=sharing

Документ должен быть опубликован правильно. Есть две кнопки публикации, и первая не работает для этой задачи. Используйте второе.

enter image description here

Документ KEY важен. Получите КЛЮЧ между /d/ и /edit в URL. В моем примере ключ является 1QDWpycJJFA-UAiSPIv-icJ4UZhbEmuN8wxxag83SE1c.

Во-вторых, используйте следующий стиль URL, заменив KEY своим собственным:

https://spreadsheets.google.com/feeds/list/KEY/od6/public/values?alt=json

Мой пример URL ссылки прямо на опубликованный JSON:
https://spreadsheets.google.com/feeds/list/1QDWpycJJFA-UAiSPIv-icJ4UZhbEmuN8wxxag83SE1c/od6/public/values?alt=json

Наконец, если на листе есть несколько листов (или вкладок), замените в URL od6 числом. В моем примере есть две вкладки, поэтому есть две ссылки, соответствующие любой вкладке. Я просто заменяю od6 на 1 и 2 зависимости от порядка листов:

Вкладка 1:
https://spreadsheets.google.com/feeds/list/1QDWpycJJFA-UAiSPIv-icJ4UZhbEmuN8wxxag83SE1c/1/public/values?alt=json

Вкладка 2:
https://spreadsheets.google.com/feeds/list/1QDWpycJJFA-UAiSPIv-icJ4UZhbEmuN8wxxag83SE1c/2/public/values?alt=json


В случае листа, где вкладки часто переупорядочиваются, можно получить идентификатор данного листа и использовать его вместо упорядоченных номеров. Я впервые узнал об этом подходе из этого поста или этого поста:

Короче говоря, вы бы преобразовали частный URL с помощью вашего KEY:

https://spreadsheets.google.com/feeds/worksheets/KEY/private/full

Это работает только в браузере, где вы вошли в Google Диск с учетной записью с разрешениями.

Затем вам нужно просмотреть XML, чтобы найти идентификаторы вашего листа:

enter image description here

Замените предыдущие 1 и 2 идентификаторами, например:

Вкладка 1 (идентификатор первого листа на новом листе Google по умолчанию всегда od6, независимо от порядка вкладок): https://spreadsheets.google.com/feeds/list/1QDWpycJJFA-UAiSPIv-icJ4UZhbEmuN8wxxag83SE1c/od6/public/values? alt= JSON

Вкладка 2:
https://spreadsheets.google.com/feeds/list/1QDWpycJJFA-UAiSPIv-icJ4UZhbEmuN8wxxag83SE1c/ope57yg/public/values?alt=json