43

Чат с прогнозом погоды и триггеры в гугл таблицах (GS6)

Глобально задача в следующем:

1 - забрать с какого-нибудь сайта прогноз погоды

2 - подключить бота и привязать его к таблице

3 - настроить триггер для отправки.

Посмотрев несколько сайтов с погодой - выбор пал на Яндекс, ввиду удобной структуры сайта.

Отсюда я забрал прогноз:

Чат с прогнозом погоды и триггеры в гугл таблицах (GS6) Telegram, Telegram бот, Google Таблицы, Бот, Чат-бот, Bots, Длиннопост

Подробнее о том как спарсить данные с сайта в таблицу в этом посте: Парсинг данных с сайтов в гугл таблички (GS1)

Тут приведу только формулу:

=IMPORTHTML("https://yandex.ru/pogoda/ufa/details?via=mf#26","table",1)

Чат с прогнозом погоды и триггеры в гугл таблицах (GS6) Telegram, Telegram бот, Google Таблицы, Бот, Чат-бот, Bots, Длиннопост

Теперь подключаем бота. Как это сделать - читай тут: Подключение телеграм бота к гугл табличкам (GS3)


Если ранее мы использовали chat_id - чат с самим ботом, то сейчас мы будем использовать ид чата/ группы в телеграме, в который бот был добавлен.

Для этого нам необходимо сохранять ид чата отдельно в таблице и обращаться к этому значению как к значению переменной chat_id.

Соответственно, нам нужна функция, которая будет это делать:


function link(chat_id) {

//записывает ид чата в таблицу

DOC.getSheetByName("Settings").getRange(2,1).setValue(chat_id);

Demo.send("ID записан", chat_id, API_TOKEN);

}


Важно! В строке Demo.send я вызываю функцию send, которая уже рассматривалась в посте про создание бота. Demo в данном контексте - это название библиотеки, также подробнее про библиотеки можно почитать в соответствующем посте.


Вызывать ее мы будем из тела функции doPost(e) при условии, что боту отправлена команда /link. В коде это выглядит вот так:

Чат с прогнозом погоды и триггеры в гугл таблицах (GS6) Telegram, Telegram бот, Google Таблицы, Бот, Чат-бот, Bots, Длиннопост

Теперь соберем все вместе и сформируем сообщение для отправки в чат.


Глобальные переменные:


API_TOKEN - токен бота

DOC - ссылка на вашу гугл таблицу

DATA - лист гугл таблицы, содержащий прогноз погоды

SETTINGS - лист гугл таблицы, содержащий значение chat_id

App_link - URL веб приложения

Все, что в кавычках, должно быть изменено на ваши значения.

Чат с прогнозом погоды и триггеры в гугл таблицах (GS6) Telegram, Telegram бот, Google Таблицы, Бот, Чат-бот, Bots, Длиннопост

Функция для подключения веб хука:

Чат с прогнозом погоды и триггеры в гугл таблицах (GS6) Telegram, Telegram бот, Google Таблицы, Бот, Чат-бот, Bots, Длиннопост

Функция link(chat_id) для запоминания id чата

Чат с прогнозом погоды и триггеры в гугл таблицах (GS6) Telegram, Telegram бот, Google Таблицы, Бот, Чат-бот, Bots, Длиннопост

Функция daily() для формирования и отправки прогноза в чат:

Чат с прогнозом погоды и триггеры в гугл таблицах (GS6) Telegram, Telegram бот, Google Таблицы, Бот, Чат-бот, Bots, Длиннопост

На данный момент функция daily() не вызывается другой функцией или командой типа /link или /hello.


Мы добавим триггер, который будет вызывать функцию автоматически каждое утро.


Переходим на вкладку Triggers

Чат с прогнозом погоды и триггеры в гугл таблицах (GS6) Telegram, Telegram бот, Google Таблицы, Бот, Чат-бот, Bots, Длиннопост

Добавляем новый триггер

Чат с прогнозом погоды и триггеры в гугл таблицах (GS6) Telegram, Telegram бот, Google Таблицы, Бот, Чат-бот, Bots, Длиннопост

В окне задаем необходимые параметры.

Во-первых, функцию. Фукция, которая вызывается по триггеру, - daily().

Чат с прогнозом погоды и триггеры в гугл таблицах (GS6) Telegram, Telegram бот, Google Таблицы, Бот, Чат-бот, Bots, Длиннопост

Event source - по времени (Time-driven)

Type of time based trigger - Day timer (раз в день)

Time of day - в какое время триггер должен сработать

Чат с прогнозом погоды и триггеры в гугл таблицах (GS6) Telegram, Telegram бот, Google Таблицы, Бот, Чат-бот, Bots, Длиннопост

Сохраняем.


Результат работы скрипта ниже.

Чат с прогнозом погоды и триггеры в гугл таблицах (GS6) Telegram, Telegram бот, Google Таблицы, Бот, Чат-бот, Bots, Длиннопост

Дополнительно: триггеры на то и триггеры, что работают автономно (без участия пользователя или разработчика, с закрытым доком или чатом. В любой ситуации сообщение будет отправлено в чат в установленное время с установленной частотой.

MS, Libreoffice & Google docs

619 постов14.2K подписчик

Добавить пост

Правила сообщества

1. Не нарушать правила Пикабу

2. Публиковать посты соответствующие тематике сообщества

3. Проявлять уважение к пользователям

4. Не допускается публикация постов с вопросами, ответы на которые легко найти с помощью любого поискового сайта.

По интересующим вопросам можно обратиться к автору поста схожей тематики, либо к пользователям в комментариях


Важно - сообщество призвано помочь, а не постебаться над постами авторов! Помните, не все обладают 100 процентными знаниями и навыками работы с Office. Хотя вы и можете написать, что вы знали об описываемом приёме раньше, пост неинтересный и т.п. и т.д., просьба воздержаться от подобных комментариев, вместо этого предложите способ лучше, либо дополните его своей полезной информацией и вам будут благодарны пользователи.

Утверждения вроде "пост - отстой", это оскорбление автора и будет наказываться баном.

Подробнее