Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
abills:docs:manual:sender:telegram [2017/07/19 16:47] 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 позволяет проводить массовые рассылки и сократить время на поддержку абонентов. | ||
- | На данном этапе, используется один бот для администраторов и клиентов. | + | На данном этапе, используется один бот для администраторов и клиентов (для каждого создаётся свой уникальный чат). |
+ | |||
+ | Возможности | ||
+ | * Рассылка для подписаных клиентов | ||
+ | * Возможность вести переписку из 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'').\\ | ||
Клиенты могут подписаться через кнопку на первой странице кабинета.\\ | Клиенты могут подписаться через кнопку на первой странице кабинета.\\ | ||
Строка 12: | Строка 22: | ||
Кнопка формирует ссылку с секретом, который передастся приложением Telegram.\\ | Кнопка формирует ссылку с секретом, который передастся приложением Telegram.\\ | ||
- | В планах расширить возможности бота для запроса базовой информации с билинга (баланс, сума и дата следующего платежа и т.д). | ||
==== Создание бота ==== | ==== Создание бота ==== | ||
Строка 29: | Строка 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]]) | ||
Строка 45: | Строка 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); |
---- | ---- | ||
Строка 59: | Строка 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 - в случае ошибки |