Найти тему
6,5K подписчиков

Как в 1С получить сообщение из Телеграм бота?

620 прочитали
У меня уже было несколько статей про работу с Телеграм-ботами в 1С.  В этой статье расскажу, как можно получить сообщение отправленное Телеграм-боту в 1С. Давайте будем разбираться по порядку. Первое.

У меня уже было несколько статей про работу с Телеграм-ботами в 1С.

В этой статье расскажу, как можно получить сообщение отправленное Телеграм-боту в 1С.

Давайте будем разбираться по порядку.

Первое. Для начала у нас должен быть зарегистрирован бот, как это сделать можно прочитать в этой статье:

Второе. Наша задача получить сообщение в 1С, которое отправляет пользователь бота. Потом это сообщение обработать и отправить ответ.

Как мы можем получать сообщения в 1С?

Есть два варианта:

  • Вебхук — Телеграм сам будет отправлять сообщения к нам в 1С;
  • Поллинг — регулярно отправлять запрос из 1С к серверу Телеграма для получения новых сообщений;

Вебхук / Webhook

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

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

Для реализации такой схемы, необходимо:

  1. Написать соответствующий http-сервис в 1С;
  2. Опубликовать его на веб-сервере, при этом веб-сервер должен быть доступен из интернета;

Т.е. фактически нам нужно решить не только программную задачу по обработке входящих сообщений, но и техническую для организации взаимодействия серверов Телграма и нашей 1С.

Вебхук / Webhook
Вебхук / Webhook

Поллинг / Polling

При таком варианте мы из 1С отправляем запрос на сервера Телеграм и целью проверить не появились ли там новые сообщения. Т.е. в отличии от вебхука мы сами запрашиваем сообщения, автоматически они нам в 1С не упадут.

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

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

Поллинг / Polling
Поллинг / Polling

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

Получение сообщений

Для получения сообщения нам нужно отправить запрос на адрес: api.telegram.org

Пример текста запроса:

bot<token>/getUpdates?offset=<update_id>&limit=1

  • <token> — Это токен, который вы получили при регистрации бота;
  • <update_id> — Идентификатор обновления, это номер сообщения который вы хотите получить;
  • limit=1 — Количество сообщений в пакете;

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

Т.е. параметр запроса offset говорит нам, какой номер обновления мы хотим получить. В случае если мы делаем первый запрос, то можно указать offset=0.

В примере ниже я запрашиваю пакет обновления с номером 223721281, при успешном получении я его сохраню и в следующий раз уже буду запрашивать: ИдентификаторОбновления + 1

У меня уже было несколько статей про работу с Телеграм-ботами в 1С.  В этой статье расскажу, как можно получить сообщение отправленное Телеграм-боту в 1С. Давайте будем разбираться по порядку. Первое.-4

Запрос нам вернет JSON (переменная СтрокаОтвет) в котором будет вся информация об отправленном сообщении:

  • Результат выполнения;
  • Номер идентификатора обновления;
  • Информация об отправителе;
  • Текст сообщения;
У меня уже было несколько статей про работу с Телеграм-ботами в 1С.  В этой статье расскажу, как можно получить сообщение отправленное Телеграм-боту в 1С. Давайте будем разбираться по порядку. Первое.-5

Для удобства этот JSON мы можем преобразовать в Соответствие и дальше работать с ним.

Понравилась статья, поддержите лайком 👍

Чтобы не пропускать новые статьи, подписывайтесь!