Гугл скрипт: как читать и отправлять сообщения в телеграм бот
  • Ігор Білецький
  • 28.08.2021
  • 4 комментария

В предыдущих статьях мы научились создавать веб-приложение и подключаться к боту.

Сегодня рассмотрим вопрос, как читать полученные ботом сообщения и отвечать на них.

Как было описано в предыдущей статье, мы после срабатывания нашего веб-хука (если что-то написать боту) получили некий объект, где содержится информация, что написано, когда и прочее. Предположим, что объект находится в переменной content

Для дальнейшей обработки нам необходимо его распарсить, чтобы получить нужные нам данные.

Также следует понимать, что если кто-то что-то пишет нашему боту — он с ним «чатится» (создает отдельный чат).

Следовательно, чтобы ответить на сообщение, нужно прежде всего знать идентификатор этого чата.

Чтобы получить идентификатор, используем следующую команду:

let chatID = content.message.chat.id;

В результате у нас в переменной chatID находится идентификатор чата.

Аналогичным образом получаем текст сообщения:

let receiveMsg = content.message.text;

Приведу весь код функции (начало):

function readInputMsg(content) {
//функция обработки сообщения
  let chatID = content.message.chat.id;
  let receiveMsg = content.message.text;

Расшифровка: на входе мы получили объект (content) и из него получили идентификатор чата (chatID) и текст самого сообщения (receiveMsg).

Теперь мы можем прочитать сообщение (в данной статье не будем углубляться в анализ текстовых строк) и ответить на него:

function sendMsg(chatID, textMsg) {
//отправляем простое сообщение
  let data = {
    method: "post",
    payload: {
      method: "sendMessage",
      chat_id: String(chatID),
      text: textMsg,
      parse_mode: "HTML"
    }
  };
 return UrlFetchApp.fetch(botUrl + '/', data);
}

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

Внутри функции создается объект (data), который содержит информацию, которую мы отправляем нашему боту с помощью директивы UrlFetchApp.

В следующей статье мы научимся создавать клавиатуру и обрабатывать ее.

Если есть вопросы, задавайте в комментариях.

P.S. Мы создали бесплатный телеграм бот для кэшбэков по разным банковским картам, который удобно использовать. Информацию по нему смотрите ЗДЕСЬ.

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

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

 

Коментарі

  • Author’s gravatar
    Анатолий 19th Январь 2023 , 11:58
    Ответить

    Как у Всех это работает не понимаю. мне выдаёт ощибку:Ошибка
    TypeError: Cannot read properties of undefined (reading ‘message’)
    readInputMsg @ Код.gs:3

    • Author’s gravatar
      Ігор Білецький 19th Январь 2023 , 17:18
      Ответить

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

  • Author’s gravatar
    Павел 3rd Март 2023 , 17:09
    Ответить

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

    • Author’s gravatar
      Ігор Білецький 3rd Март 2023 , 17:36
      Ответить

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

Залишити коментар

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

Підтримати сайт! Дякуємо!

Подякувати і подтримати сайт

Заробляй через інтернет

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

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

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