Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
abills:docs:manual:sender:telegram [2017/07/25 11:37]
anton
abills:docs:manual:sender:telegram [2017/12/13 12:42]
snuryus
Строка 1: Строка 1:
-===== Telegram =====+=== Подключение API === 
 +Для соединения с API используется модуль AnyEvent (это позволяет создавать одно подключение для передачи нескольких сообщений) 
 +Поэтому,​ нужно [[abills:​docs:​manual:​soft:​anyevent|установить модуль AnyEvent]];
  
 +===== Telegram Bot =====
 Бот Telegram позволяет проводить массовые рассылки и сократить время на поддержку абонентов. Бот Telegram позволяет проводить массовые рассылки и сократить время на поддержку абонентов.
-На данном этапе, используется один бот для администраторов и клиентов.+На данном этапе, используется один бот для администраторов и клиентов ​(для каждого создаётся свой уникальный чат).
  
-Для правильной работы,​ нужно использовать новую модель контактов (''​$conf{CONTACTS_NEW} = 1''​).\\+Возможности 
 +  * Рассылка для подписаных клиентов 
 +  * Возможность вести переписку из Helpdesk в чате Telegram (одновременно по всем заявкам) 
 +  * [[abills:​docs:​manual:​user_portal:​telegram_bot:​ru|Возможность просматривать информацию и управлять некоторыми функциями непосредственно из Telegram]]. 
 + 
 +Для правильной работы, ​[[abills:​docs:​manual:​misc_soft#​konvertacija_kontaktov_polzovatelja_v_format_novyx_kontaktov|нужно использовать новую модель контактов]] (''​$conf{CONTACTS_NEW} = 1''​).\\
  
 Клиенты могут подписаться через кнопку на первой странице кабинета.\\ Клиенты могут подписаться через кнопку на первой странице кабинета.\\
Строка 14: Строка 22:
 Кнопка формирует ссылку с секретом,​ который передастся приложением Telegram.\\ Кнопка формирует ссылку с секретом,​ который передастся приложением Telegram.\\
  
-В планах расширить возможности бота для запроса базовой информации с билинга (баланс,​ сума и дата следующего платежа и т.д). 
  
 ==== Создание бота ==== ==== Создание бота ====
Строка 31: Строка 38:
 5) Следующий шаг нас спрашивают Имя пользователя бота. Это параметр будет использоваться для запросов к боту. От 5 до 32 символов,​ регистро чувствительная латиница,​ цифры и нижние подчеркивания. Имя пользователя бота должно заканчиваться на bot. Вводим наше имя пользователя,​ например **TestAbills_bot**. 5) Следующий шаг нас спрашивают Имя пользователя бота. Это параметр будет использоваться для запросов к боту. От 5 до 32 символов,​ регистро чувствительная латиница,​ цифры и нижние подчеркивания. Имя пользователя бота должно заканчиваться на bot. Вводим наше имя пользователя,​ например **TestAbills_bot**.
  
-6) Мы зарегистрировали нашего бота. Мы получили линк на нешго бота https://​telegram.me/​Testkkbot, а так же очень важный параметр - токен.+6) Мы зарегистрировали нашего бота. Мы получили линк на нешго бота https://​telegram.me/​TestAbills_bot, а так же очень важный параметр - токен.
  Токен:​ 167953392:​AAHVUmXdEOTzLbdzSuV23QuEBTmDMjzg-io .  Токен:​ 167953392:​AAHVUmXdEOTzLbdzSuV23QuEBTmDMjzg-io .
  
 7) Бот создан! 7) Бот создан!
  
 +==== Локализация интерфейса ==== 
 +По умолчанию,​ бот общается с пользователями на языке ''​$conf{default_language}''​. Есть возможность отправлять каждому пользователю сообщения на своём языке. Для этого добавьте информационное поле ''​_language''​ (обратите внимание на дополнительное ''​_''​). После этого, пользователь сможет менять язык через команду ''/​language''​.
 ==== Запуск и привязка бота к биллингу ==== ==== Запуск и привязка бота к биллингу ====
 +Установить perl модули
 +  * AnyEvent
 +  * AnyEvent::​HTTP
 +  * Net::SSLeay
 +  ​
 В файл настроек **config.pl** прописать следующие параметры:​ В файл настроек **config.pl** прописать следующие параметры:​
 ^$conf{TELEGRAM_TOKEN} = '​267953392:​AAHVUmXdEOTzLbdzSuV23QuEBTmDMjzg-io';​ | Токен, который получили при создании бота | ^$conf{TELEGRAM_TOKEN} = '​267953392:​AAHVUmXdEOTzLbdzSuV23QuEBTmDMjzg-io';​ | Токен, который получили при создании бота |
-^$conf{TELEGRAM_SERVER_ADDRESS} = '​https://​192.168.1.41:​9443/'​Прописать ​полный адрес ​вашего сервера. (protocol:/ip:port/+^$conf{TELEGRAM_MSGS_BOT_ENABLE} = 1; | Позволить отвечать на сообщения из чата Telegram | 
 +^$conf{BILLING_URL} = '​https://​demo.abills.net.ua:​9443/'​ | Ссылка на биллинг,​ для построения ссылок ​просмотра сообщений 
 +^$conf{TELEGRAM_DEBUG} = 3; | 1..7 Уровень отладки | 
 +^$conf{TELEGRAM_DEBUG_FILE} = '/​usr/​abills/​var/​log/​telegram.log'​ | Куда писать лог Telegram | 
 +^$conf{TELEGRAM_API_REQUEST_INTERVAL} = 3; | Частота обращений к Telegram API в секунду ​ | 
 +^$conf{TELEGRAM_API_DEBUG} = 3; | 1..7 Уровень отладки Telegram API | 
 +^$conf{TELEGRAM_API_DEBUG_FILE} = '/​usr/​abills/​var/​log/​telegram.log' | Куда писать лог Telegram API | 
 +^$conf{MSGS_MESSAGING_DEBUG_FILE} = '/usr/abills/​var/​log/​telegram_msgs.log' ​Куда писать лог вызовов Telegram из модуля Msgs |;
  
 После этого, нужно перезапустить ''​websocket_backend.pl''​. (Если еще не установлен,​ [[abills:​docs:​manual:​websocket_backend|Установка WebSocket Backend]]) После этого, нужно перезапустить ''​websocket_backend.pl''​. (Если еще не установлен,​ [[abills:​docs:​manual:​websocket_backend|Установка WebSocket Backend]])
Строка 47: Строка 67:
 **Файл логирования Телеграма находится в ''/​usr/​abills/​var/​log/​telegram.log''​** **Файл логирования Телеграма находится в ''/​usr/​abills/​var/​log/​telegram.log''​**
 ==== Разработчикам ==== ==== Разработчикам ====
 +
 +==== Схема работы Telegram бота ====
 +[[abills:​docs:​manual:​sender:​telegram:​bot|Схема работы бота Telegram]]
 +
 +
 ===Доступные методы=== ===Доступные методы===
 +
 +=== Консольный интерфейс ==
 +[[abills:​docs:​manual:​sender:​cli|Консольный интерфейс к Sender]]
 +
 **new** - создания нового обьекта Telegram. **new** - создания нового обьекта Telegram.
  
 Пример использования:​ Пример использования:​
  
-  my $Telegram = Abills::​Sender::​Telegram->​new( ​token => $instagram_token ​);+  my $Telegram = Abills::​Sender::​Telegram->​new(\%conf);
  
 ---- ----
Строка 61: Строка 90:
 ^ AID или UID | chat_id абонента | ^ AID или UID | chat_id абонента |
 ^ MESSAGE ​    | текст сообщения | ^ MESSAGE ​    | текст сообщения |
-PARS_MODE ​  | тип оформления сообщения. Может быть либо [[https://​core.telegram.org/​bots/​api#​html-style|markdown]], либо [[https://​core.telegram.org/​bots/​api#​html-style|html]]. |+SUBJECT ​    | заголовок сообщения | 
 +^ PARSE_MODE ​  | тип оформления сообщения. Может быть либо [[https://​core.telegram.org/​bots/​api#​html-style|MARKDOWN]], либо [[https://​core.telegram.org/​bots/​api#​html-style|HTML]]. |
  
 Пример использования:​ Пример использования:​
  
-  my $answer ​= $Telegram->​send_message({ UID        => $user_chatid, ​+  my $message_sent ​= $Telegram->​send_message({ UID        => $user_chatid, ​
                                          ​MESSAGE ​   => $message, ​                                          ​MESSAGE ​   => $message, ​
-                                         ​PARSE_MODE => 'markdown'});+                                         ​PARSE_MODE => 'HTML'});
  
 Возвращает:​ Возвращает:​
   1 - при удачном отправлении   1 - при удачном отправлении
   0 - в случае ошибки   0 - в случае ошибки