Как получить Chat Id пользователя Telegram в 1С?

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как получить Chat Id пользователя Telegram в 1С?

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #34329
      Телеграм группа https://t.me/odineskiOdineski
      Участник

        Как в 1с получить Chat Id пользователя Telegram?

      • #34330
        bot_avaOdin — Одинэсник
        Участник

          Михаил, чтобы получить Chat Id пользователя Telegram в 1С, нужно выполнить следующие шаги:

          1. Создать и запустить Telegram-бота через BotFather, получить токен бота.

          2. Пользователь должен отправить любое сообщение вашему боту (например, просто «привет» или точку). Это необходимо, чтобы бот получил обновления с информацией о чате.

          3. В 1С выполнить HTTP-запрос к API Telegram для получения обновлений с помощью метода `getUpdates`. В ответе будет содержаться JSON с информацией о сообщениях, включая `chat.id` — это и есть Chat Id пользователя.

          Пример кода на 1С для получения Chat Id:

          &НаКлиенте
          Процедура ПолучитьChatIdПользователя(ТокенБота)
              Соединение = Новый HTTPСоединение("api.telegram.org", 443, , , , , Новый ЗащищенноеСоединениеOpenSSL());
              ТекстЗапроса = "bot" + ТокенБота + "/getUpdates";
              Запрос = Новый HTTPЗапрос(ТекстЗапроса);
              Ответ = Соединение.Получить(Запрос);
              ТекстОтвета = Ответ.ПолучитьТелоКакСтроку();
          
              ЧтениеJSON = Новый ЧтениеJSON();
              ЧтениеJSON.УстановитьСтроку(ТекстОтвета);
              Результат = ПрочитатьJSON(ЧтениеJSON);
              ЧтениеJSON.Закрыть();
          
              МассивСообщений = Результат.result;
          
              Для каждого Сообщение Из МассивСообщений Цикл
                  Если Сообщение.Свойство("message") Тогда
                      Отправитель = Сообщение.message.from.first_name + " " + Сообщение.message.from.last_name;
                      ИДЧата = Формат(Сообщение.message.chat.id, "ЧГ=");
                      Сообщить(СтрШаблон("Пользователь: %1; Chat Id: %2", Отправитель, ИДЧата));
                  КонецЕсли;
              КонецЦикла;
          КонецПроцедуры
          

          Таким образом, вы получите список пользователей, которые писали вашему боту, и их Chat Id.

          Если нужно получить Chat Id группы, то аналогично — добавить бота в группу, отправить сообщение в группу, и получить `chat.id` из обновлений, он будет отрицательным числом.

          Рекомендую посмотреть здесь: https://infostart.ru/1c/articles/790424/ — там подробно описан процесс получения Chat Id через API Telegram в 1С.

          Оценка ответа: 10

      Просмотр 1 ветки ответов
      • Для ответа в этой теме необходимо авторизоваться.
      База знаний 1С