=== Подключение API === Для соединения с API используется модуль AnyEvent (это позволяет создавать одно подключение для передачи нескольких сообщений) Поэтому, нужно [[abills:docs:manual:soft:anyevent|установить модуль AnyEvent]]; ===== Telegram Bot ===== Бот 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'').\\ Клиенты могут подписаться через кнопку на первой странице кабинета.\\ {{ :abills:docs:manual:sender:client_telegram_subscribe.png?nolink |}} \\ Администраторы - в любом меню "Профиль" (основном и секции правого меню)\\. {{ :abills:docs:manual:sender:admin_telegram_subscribe.png?nolink |}} \\ Кнопка формирует ссылку с секретом, который передастся приложением Telegram.\\ ==== Создание бота ==== Эту операцию нужно делать с устройства где устанвлен Telegram. 1) Заходим https://telegram.me/botfather . Если есть аккаунт нажимаем кнопку “Send message”. Если нету, то регистрируемся в Telegram-е, затем снова заходим и нажимаем “Send message”. Или можно сразу зайти в Telegram, в поиске вбить Botfather и перейти к диалогу с ним. 2) На главном экране бота нажимаем “Start”. 3) Покажется список возможных команд для обращения к BotFather. Нам нужно ввести команду **/newbot**. 4) BotFather спросит имя нашего бота. Это имя будет отображаться в деталях контакта. Вводим имя бота, например **Testbot**. 5) Следующий шаг нас спрашивают Имя пользователя бота. Это параметр будет использоваться для запросов к боту. От 5 до 32 символов, регистро чувствительная латиница, цифры и нижние подчеркивания. Имя пользователя бота должно заканчиваться на bot. Вводим наше имя пользователя, например **TestAbills_bot**. 6) Мы зарегистрировали нашего бота. Мы получили линк на нешго бота https://telegram.me/TestAbills_bot, а так же очень важный параметр - токен. Токен: 167953392:AAHVUmXdEOTzLbdzSuV23QuEBTmDMjzg-io . 7) Бот создан! ==== Локализация интерфейса ==== По умолчанию, бот общается с пользователями на языке ''$conf{default_language}''. Есть возможность отправлять каждому пользователю сообщения на своём языке. Для этого добавьте информационное поле ''_language'' (обратите внимание на дополнительное ''_''). После этого, пользователь сможет менять язык через команду ''/language''. ==== Запуск и привязка бота к биллингу ==== Установить perl модули * AnyEvent * AnyEvent::HTTP * Net::SSLeay В файл настроек **config.pl** прописать следующие параметры: ^$conf{TELEGRAM_TOKEN} = '267953392:AAHVUmXdEOTzLbdzSuV23QuEBTmDMjzg-io'; | Токен, который получили при создании бота | ^$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]]) **Файл логирования Телеграма находится в ''/usr/abills/var/log/telegram.log''** ==== Разработчикам ==== ==== Схема работы Telegram бота ==== [[abills:docs:manual:sender:telegram:bot|Схема работы бота Telegram]] ===Доступные методы=== === Консольный интерфейс == [[abills:docs:manual:sender:cli|Консольный интерфейс к Sender]] **new** - создания нового обьекта Telegram. Пример использования: my $Telegram = Abills::Sender::Telegram->new(\%conf); ---- **send_message** - отправка сообщения абоненту по его chat_id из Instagram Параметры: ^ AID или UID | chat_id абонента | ^ MESSAGE | текст сообщения | ^ SUBJECT | заголовок сообщения | ^ PARSE_MODE | тип оформления сообщения. Может быть либо [[https://core.telegram.org/bots/api#html-style|MARKDOWN]], либо [[https://core.telegram.org/bots/api#html-style|HTML]]. | Пример использования: my $message_sent = $Telegram->send_message({ UID => $user_chatid, MESSAGE => $message, PARSE_MODE => 'HTML'}); Возвращает: 1 - при удачном отправлении 0 - в случае ошибки