Секретные записки веб-программиста




Метки статей:
100mbru, CentOS, cms, drupal, joomla, LAMP, linux, mysql, nicru, Open-Source, Red Hat, seo, Typo3, ubuntu, авто, администрирование, алгоритмы, алкоголь, бизнес, битрикс, видео, военмех, выборы, германия, джино, домены, интересности, исследования, картинки, кино, кодинг, компьютеры, ливия, магазин, маразм, мастерхост, обработка-изображений, пейнтбол, политика, политэкономия, прикольное-видео, программирование, путешествия, работа, религия, рунет, сайтостроение, сео, сми, технологии, украина, форум, хиханьки, холивары, хостинг

Отправка персональных сообщений и оповещений из Битрикса в Телеграмм

- 19-03-19

Теги статьи: программирование, битрикс
I. Подготовка Битрикса
II. Подготовка бота (для каждого пользователя)
III. Подготовка чата (для каждого пользователя)
IV. Прописываем api_bot и chat_id пользователям

 

I. Подготовка Битрикса

1. В разделе Настройки -> Настройки продукта -> Пользовательские поля создаёте у объекта USER два новых поля: TELEGRAMM_BOT_TOKEN и TELEGRAMM_CHAT_ID

2. Выводите их в настройках в какую-нибудь вкладку для удобного заполнения

3. Создаёте обработчик события OnBeforeMessageNotifyAdd:

 
function OnBeforeMessageNotifyAdd($ar){


global $USER; $rsUser=CUser::GetByID($ar["TO_USER_ID"]); // кому отправляем PM $toUser = $rsUser->Fetch(); if(($toUser["UF_TELEGRAMM_BOT_TOKEN"]>"") && ($toUser["UF_TELEGRAMM_CHAT_ID"]>"")){ // исполняем только если у адресата прописаны реквизиты телеграмм

$token =$toUser["UF_TELEGRAMM_BOT_TOKEN"]; $chat_id=$toUser["UF_TELEGRAMM_CHAT_ID"]; if($ar["MESSAGE_OUT"]>"")$txt=str_replace("#BR#"," ",$ar["MESSAGE_OUT"]); else $txt=$ar["MESSAGE"];

if($ar["FROM_USER_ID"]>0) { $rsUser=CUser::GetByID($USER->GetID()); $fromUser = $rsUser->Fetch(); $txt="[".$fromUser["LAST_NAME"]." ".$fromUser["NAME"]."] ".$txt; }
 
 $sendToTelegram = fopen("https://api.telegram.org/bot{$token}/sendMessage?chat_id={$chat_id}&parse_mode=html&text={$txt}","r");


} }
 
 для отправки заявки с сайта в Telegram нужен бот и соответствующий чат, где бот будет работать. Нужно их создать:

- в начало -
 

II. Подготовка бота (для каждого пользователя)

1. Для начала в поиске контактов Telegram вводим @BotFather. Это «отец» ботов, позволяющий прозводить с ними некоторые манипуляции. В том числе и создать бота (все скриншоты показаны на примере Telegram for Windows).

2. Нажимаем кнопку Start в чате с BotFather, после чего нашему вниманию выпадет список доступных команд. Можем найти сами нужную команду и кликнуть, а можем написать прямо в чат: «/newbot», без кавычек естественно.

3. Далее нас попросят ввести имя бота. Будьте внимательны и избирательны, ведь Telegram работает по всему миру и огромное количество имен уже заняты.

4. После успешного ввода имени потребуется ввести username бота, по которому его можно будет найти в поиске.

5. Когда подберете верное имя для бота, вам придет последнее нужное сообщение от BotFather, содержащее в себе так называемый «токен» (см. пример на фото). Данный токен пригодится Вам для дальнейших действий, сохраните его.


- в начало -
 

III. Подготовка чата (для каждого пользователя)

1. Далее нужно создать групповой чат (New Group). Называем этот чат, и добавляем туда уже созданного бота через поиск (вводим @maxgrbot_bot, в моем случае). Днелать это нужно с телефона (с аккаунта телеграмма) каждого пользователя который будет получать сообщения из Битрикс дабы только он имел доступ.

2. Следующий шаг — присоединить бота к чату. Делается это командой «/join @my_bot» в вашем созданном чате.

3. Затем, кликнув по «my_bot» (т.е. названию вашего бота, оно то у вас другое будет), переходите в личный чат с ним и нажимаете кнопку Start.

Перейти в браузере по ссылке вида: https://api.telegram.org/botXXXXXXXXXXXXXXXXXXXXXXXXX/getUpdates - только вместо ХХХ...ХХХ нужно подставить токен вашего бота. У вас должно появиться несколько строк кода. Среди них — находите id, значение которого указано с минусом. Это chat_id


- в начало -
 

IV. Прописываем api_bot и chat_id пользователям

записываем в поля TELEGRAMM_BOT_TOKEN и TELEGRAMM_CHAT_ID на странице пользователя в админке


- в начало -
 

Версия для печати