Получение таблицы электронных таблиц 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
).
Любые идеи о том, почему эта ошибка внезапно возникает?
Ответы
Ответ 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
Ответ 3
Вы можете найти новый идентификатор по следующему
https://spreadsheets.google.com/feeds/worksheets/YOUR_SPREADSHEET_ID/private/full