Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
abills:docs:manual:sender:telegram:bot [2017/08/11 10:26] anton |
abills:docs:manual:sender:telegram:bot [2017/09/18 16:27] (текущий) anton [На примере взаимодействия модуля Msgs] |
||
---|---|---|---|
Строка 2: | Строка 2: | ||
{{ :abills:docs:manual:sender:telegram:backend-plugin-telegram.png?nolink |}} | {{ :abills:docs:manual:sender:telegram:backend-plugin-telegram.png?nolink |}} | ||
+ | \\ | ||
+ | Красный - запросы отправки даных (без обработки полученных даных)\\ | ||
+ | Зеленый - запросы получения даных (получение масива ''update'', даных на сервере Telegram)\\ | ||
+ | \\ | ||
==== На примере взаимодействия модуля Msgs ==== | ==== На примере взаимодействия модуля Msgs ==== | ||
- | Как видим, схема состоит из двух функциональных частей: модуля ''Msgs::Messaging'', ''Backend::Plugin::Telegram'' и ''Telegram::BotAPI''.\\ | + | Как видим, схема состоит из трёх функциональных частей: модуля ''Msgs::Messaging'', ''Backend::Plugin::Telegram'' и ''Telegram::BotAPI''.\\ |
Уведомления присылаются: | Уведомления присылаются: | ||
Строка 14: | Строка 18: | ||
''data'' - строка длиной до 64 байт. \\ | ''data'' - строка длиной до 64 байт. \\ | ||
\\ | \\ | ||
- | Для кнопки ответить, ''data'' содержит значение ''MSGS:REPLY:%MSG_ID%''. ('МОДУЛЬ:ОПЕРАЦИЯ:ДАННЫЕ') | + | Для кнопки "Ответить", ''data'' содержит значение ''MSGS:REPLY:%MSG_ID%''. ('МОДУЛЬ:ОПЕРАЦИЯ:ДАННЫЕ') |
\\ | \\ | ||
Когда клиент нажимает на кнопку "Ответить", в ''Backend::Plugin::Telegram'' попадает update типа callback. Из него вытягивается поле ''data'', и разбивается на части. В зависимости от значения ''МОДУЛЬ'', подгружается нужный ''ModuleInterface'' и callback передаётся в его метод process_data(). Если ''ModuleInterface'' может обработать ''ОПЕРАЦИЯ'', он возвращает обьект класа Operation, в которую будут приходить все сообщения пользователя, пока установлен блокирующий флаг (''has_operation_lock''). | Когда клиент нажимает на кнопку "Ответить", в ''Backend::Plugin::Telegram'' попадает update типа callback. Из него вытягивается поле ''data'', и разбивается на части. В зависимости от значения ''МОДУЛЬ'', подгружается нужный ''ModuleInterface'' и callback передаётся в его метод process_data(). Если ''ModuleInterface'' может обработать ''ОПЕРАЦИЯ'', он возвращает обьект класа Operation, в которую будут приходить все сообщения пользователя, пока установлен блокирующий флаг (''has_operation_lock''). |