База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как получить Chat Id пользователя Telegram в 1С? › RE: Как получить Chat Id пользователя Telegram в 1С?
Михаил, чтобы получить 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