Если вы собрались управлять своим ботом с помощью скриптов гугл таблицы (либо отдельного гугл приложения), вам после создания бота и написания соответствующих скриптов необходимо настроить связь между вашим приложением и ботом.
Итак, начнем по порядку.
В начале вы создаете свой проект (скрипты), с помощью которых планируете управлять ботом и производить другие операции. После создания проекта его нужно развернуть, как веб-приложение. Как это сделать, описано ЗДЕСЬ.
Затем вы создаете своего бота. Как это сделать, описано ЗДЕСЬ.
Порядок создания бота и веб-приложения роли не играет.
Когда все вышеизложенные операции проделаны, можно приступить собственно к настройке взаимодействия бота и вашего приложения.
Для начала вам нужно иметь токен бота и ссылку на развернутое веб-приложение.
Если вы уже развернули свое веб-приложение но забыли сохранить ссылку на него, то это можно сделать и позже. Для этого необходимо зайти в “Управление развертываниями”.
И скопировать ссылку.
Обычно я в своих проектах создаю отдельный раздел, куда сохраняю ссылку на приложение и токен бота, как константы.
Код скрипта:
const botToken = 'сюда копируем токен вашего бота'; //токен вашего бота (получить в BotFaser) const botUrl = "https://api.telegram.org/bot" + botToken; //ссылка на бота (здесь ничего не меняем) const appUrl = 'сюда копируем ссылку на ваше веб-приложение'; //ссылка на ваше веб-приложение (получаем после развертывания приложения)
Теперь нам необходимо произвести собственно связывание бота и нашего проекта.
Сначала создает так называемый “веб-хук” (крючок) – связываем бота и наш скрипт:
function setWebHook() { //устанавливаем веб-хук - если что-то пишется боту let response = UrlFetchApp.fetch(botUrl + "/setWebhook?url=" + appUrl); Logger.log('telegram response status is ' + response.getResponseCode()); }
Фактически связываем специальной командой (setWebhook) бота и веб-приложение. Если что-то будет писаться в боте, то этот веб-хук сработает.
Если вы все сделали правильно, то веб-хук успешно установлен, и теперь если что-то написать боту, то сообщение отправиться в наше приложение. Чтобы его прочитать, необходимо написать следующий код:
function doPost(e) { // когда пишем что-то боту - срабатывает вебхук и получаем данные в эту ф-цию let content = JSON.parse(e.postData.contents); //распарсим сообщение readInputMsg(content); //читаем входящее сообщение return HtmlService.createHtmlOutput(); }
Данная функция немного обрабатывает полученную информацию и отправляет сообщение в другую функцию (readInputMsg) для дальнейшей обработки.
Как дальше обрабатывать сообщение и отвечать на него, читайте здесь.
P.S. Дополнительная информация.
Чтобы проверить, что у вас установлен веб-хук, можно использовать следующий код:
function getWebHook() { //статус веб-хука let response = UrlFetchApp.fetch(botUrl + "/getWebhookInfo"); if (response.getResponseCode() == 200) { let data = JSON.parse(response.getContentText()) Logger.log('current webhook url is ' + data.result.url); } else { Logger.log('telegram response status is ' + response.getResponseCode()); } }
Если все установлено успешно, в логах будет информация о созданном соединении.
Почеркнутая строка – ссылка на ваше веб-приложение.
Если вам нужно удалить веб-хук (разорвать связь между приложением и ботом), можно использовать следующий код:
function deleteWebHook() { //удаляем веб-хук (если необходимо отключить обработку скриптом сообщений, что пишут боту) let response = UrlFetchApp.fetch(botUrl + "/deleteWebhook?url=" + appUrl); Logger.log('telegram response status is ' + response.getResponseCode()); }
В результате работы скрипта связь с вашим ботом будет разорвана.
На этом все. Если есть вопросы, пишите в комментариях.
Рекомендую почитать:
- “10 бирж фриланса и удаленной работы для новичков и профи: список и рекомендации по заработку”
- “Учет заказов по работе с клиентами в Гугл Таблице: бесплатное готовое решение”
- “Бесплатная мультиссылка за 5 минут для Инстаграм, Тик Ток, Фейсбук и др.”
Фанис 2nd Червень 2022 , 14:56
Здравствуйте, развернул веб приложение, создал бота, все коды функций вписал в редактор скриптов. Бот молчит.
Светлана Билецкая 17th Червень 2022 , 08:09
Добрый день.
На текущий момент связь с мужем (он разработчик) только иногда в телефонном режиме.
Возможно, вы не прописали токен телеграмм-бота в вашем коде.
Также проверьте, создали ли вы веб-хук (связь между ботом и вашим приложением).
В целом попробуйте еще раз внимательно пройти по всем пунктам.
Все описанное в статье делалось на практике и проверено на работоспособность.