Зачем использовать Google Таблицы?
- Совершенно бесплатно
- Мгновенно обновляйте контент
- Быстрая реализация
- Легко понять
Отказ от ответственности: этот метод требует публичной публикации ваших данных - пожалуйста, не используйте общедоступные таблицы при работе с конфиденциальными / личными данными.
Фон
Мой партнер недавно увлекся увлечением AskReddit на YouTube. Для непосвященных создатели контента предлагают темы с самым высоким рейтингом, а программа преобразования текста в речь зачитывает сообщение.
Неплохо! Но с Alexa было бы намного круче, особенно когда добавлялись чередующиеся голоса AWS Polly!
Вместо того, чтобы автоматизировать процесс получения сообщений, я хотел поддерживать постоянное качество и гарантировать, что сообщения не будут слишком явными.
Ниже приведен пример того, как мои отобранные сообщения выглядят в электронной таблице, однако для доступа к этим данным нам необходимо опубликовать наш документ.
1) Обеспечение доступа к электронной таблице
Заявление об ограничении ответственности II: при публикации в Интернете любой, у кого есть ссылка, сможет прочитать ваши данные.
Откройте электронную таблицу, в которой будет храниться ваше содержание, затем перейдите к «Файл» - ›« Опубликовать в Интернете »-› «Опубликовать». (Во втором раскрывающемся списке оставьте "Веб-страница")
2) Создание URL
Чтобы вернуть данные JSON из нашей электронной таблицы, нам необходимо отформатировать запрос с помощью нашего действующего идентификатора электронной таблицы (а не опубликованного идентификатора). Нам также необходимо включить индекс страницы, обратите внимание, что индекс начинается с 1, а не с 0.
https://spreadsheets.google.com/feeds/cells/{SPREADSHEET_ID}/{PAGE_INDEX}/public/values?alt=json
3) Анализ данных
Результат, который мы получаем, невзрачный, но мы можем с ним работать!
Вот снимок почтальона после отправки запроса GET. Все данные сортируются в массиве 'entry', отсюда вы можете рационализировать массив, отформатировав его обратно в двумерный массив и проверяя отдельные позиции (например: A5), хотя каждый раз, когда я запускаю этот код, это будет отдельный экземпляр, я бы предпочел избежать лишнего времени вычислений.
Чтобы получить доступ к отдельной ячейке, включите индекс ячейки, для которой требуется значение, например:
content.feed.entry[{CellIndex}]['gs$cell']['$t'];
Альтернативой этому является создание собственного смещения, в моем случае это создание начального индекса (QuestionIndex), который вычисляется путем взятия индекса первой ячейки, содержащей вопрос, с последующим добавлением случайное число, основанное на количестве вопросов, умноженное на количество моих столбцов, которое выглядит примерно так:
QuestionIndex = FirstIndex + (Math.floor (Math.random () * 51) * Columns )
Когда у меня есть указатель вопросов, я добавляю 2, чтобы компенсировать то, что мой вопрос находится на 2 пробела перед первым столбцом:
content.feed.entry[QuestionIndex+2]['gs$cell']['$t'];
Точно так же для комментариев я добавляю еще одно смещение +2, умноженное на индекс комментария, который я хочу:
content.feed.entry[QuestionIndex+2+CommentIndex]['gs$cell']['$t'];
Если вы нашли этот пост полезным, подпишитесь на меня в Twitter! https://twitter.com/LiamSorta