Зачем использовать 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