Как настроить связь между ботом и веб приложением гугл
  • Игорь Билецкий
  • 28.08.2021
  • 2 комментария

Если вы собрались управлять своим ботом с помощью скриптов гугл таблицы (либо отдельного гугл приложения), вам после создания бота и написания соответствующих скриптов необходимо настроить связь между вашим приложением и ботом.

Итак, начнем по порядку.

В начале вы создаете свой проект (скрипты), с помощью которых планируете управлять ботом и производить другие операции. После создания проекта его нужно развернуть, как веб-приложение. Как это сделать, описано ЗДЕСЬ.

Затем вы создаете своего бота. Как это сделать, описано ЗДЕСЬ.

Порядок создания бота и веб-приложения роли не играет.

Когда все вышеизложенные операции проделаны, можно приступить собственно к настройке взаимодействия бота и вашего приложения.

Для начала вам нужно иметь токен бота и ссылку на развернутое веб-приложение.

Если вы уже развернули свое веб-приложение но забыли сохранить ссылку на него, то это можно сделать и позже. Для этого необходимо зайти в «Управление развертываниями».

Как настроить связь между ботом и веб-приложением Google: управление развертываниями

И скопировать ссылку.

Как настроить связь между ботом и веб-приложением Google: управление развертываниями

Обычно я в своих проектах создаю отдельный раздел, куда сохраняю ссылку на приложение и токен бота, как константы.

Как настроить связь между ботом и веб-приложением гугл

Код скрипта:

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());
}

В результате работы скрипта связь с вашим ботом будет разорвана.

На этом все. Если есть вопросы, пишите в комментариях.

Кстати, если наш сайт принес вам пользу и вы хотите сказать нам «Спасибо» и поддержать нас 🙏, то это можно сделать ЗДЕСЬ.

 
Рекомендую почитать:

 

Комментарии

  • Author’s gravatar
    Фанис 2nd Июнь 2022 , 14:56
    Ответить

    Здравствуйте, развернул веб приложение, создал бота, все коды функций вписал в редактор скриптов. Бот молчит.

    • Author’s gravatar
      Светлана Билецкая 17th Июнь 2022 , 08:09
      Ответить

      Добрый день.
      На текущий момент связь с мужем (он разработчик) только иногда в телефонном режиме.
      Возможно, вы не прописали токен телеграмм-бота в вашем коде.
      Также проверьте, создали ли вы веб-хук (связь между ботом и вашим приложением).
      В целом попробуйте еще раз внимательно пройти по всем пунктам.
      Все описанное в статье делалось на практике и проверено на работоспособность.

Оставить комментарий

Есть клиенты? Используйте CRM в Гугл Таблице для учета

Поддержать сайт! Спасибо!

Сказать спасибо и поддержать сайт

Зарабатывай через интернет

Доход через интернет: биржи фриланса и удаленной работы

Футажи для видео ютуб

Футажи для ютуба