Как получить доступ к каналу JSONP для электронной таблицы Служб Google для вашего домена?
Я не могу понять, как получить доступ к электронной таблице Google через JSONP, когда эта таблица является частью учетной записи Служб Google для вашего домена.
Google предоставляет документированный способ доступа к электронной таблице Google через JSONP, который работает для обычных учетных записей gmail.com. Короче:
- Создать электронную таблицу
- Нажмите на раскрывающееся меню "Поделиться" и выберите "Опубликовать как веб-страницу".
- Скопируйте и вставьте ключ из отображаемого URL-адреса (т. Е. Бит после &key=)
- Перейдите на страницу https://spreadsheets.google.com/feeds/list/0AmHYWnFLY1F-dG1oTHQ5SS1uUzhvTnZTSHNzMjdDaVE/od6/public/values?alt=json-in-script&callback=myCallback заменив "0AmHYWN" на 0ВНТ-1-ЗТУНГ-НУЖНУЗИ
Когда я пытаюсь сделать это на моем собственном домене, кажется, все работает. Но когда я захожу на URL, который я создал, как указано выше, Google выдает ошибку:
Электронная таблица по этому URL не найдена. Убедитесь, что у вас есть правильный URL и что владелец таблицы не удалил его.
Я предполагаю, что есть какая-то проблема с разрешением или какой-то альтернативный URL, который я должен использовать, но я не могу найти какую-либо документацию иначе.
2 ответа
Хорошо, после некоторого тестирования я нашел решение:
- Вы должны поделиться им, либо как общедоступные в Интернете, либо с кем-либо со ссылкой
- а затем вам нужно опубликовать его
Оба шага необходимы для разрешения вызова JSONP.
Однако данные, которые возвращаются, довольно волосатые. Вы можете использовать YQL для получения более чистых данных:
select * from csv
where url="https://docs.google.com/spreadsheet/pub?key=XXXX&output=csv"
Если вы хотите назвать ключи, вы можете добавить:
and columns="foo,bar,baz"
Попробуйте здесь со своей таблицей; Вы должны получить это (я назвал столбец "задача"):
cbfunc({
"query": {
"count": 3,
"created": "2013-01-02T21:37:09Z",
"lang": "en-US",
"results": {
"row": [
{
"task": "Steal underpants"
},
{
"task": "..."
},
{
"task": "Profit"
}
]
}
}
});