О плагине

Плагин предназначен для интеграции BGERP с месседжером Telegram и предоставляет функционал:

  • привязка процесса к чату группы или чату пользователя Telegram;

  • привязка пользователя к чату группы или чату пользователя Telegram;

  • использование Markdown разметки в тексте отправляемых сообщений.

Настройка

  1. В BotFather создать своего бота, прописать его название и токен в конфигурации.

  2. Создать параметры для пользователя и процесса, где будут храниться id чатов и прописать их в конфигурации .

После запуска найти в телеграмм своего бота. Eсли разговор один на один : - команды /getid - получить id и вписать в параметр своего пользователя, можно вписать и в параметр процесса - /start после чего ввести в чате пользователя и пароль, тогда в параметр пользователя ид чата занесется само

Можно добавить бота в чат, тогда : - /getid и заносим его в параметр процесса ил пользователя.

Пример настройки

telegram:bot_start=1

# настройки прокси, в случае необходимости
telegram:proxyHost=111.223.75.181
telegram:proxyPort=8888
# SOCKS5 , HTTP
telegram:proxyType=SOCKS5

# в BotFather создать своего бота, прописать его название и токен
telegram:token=842416376:AAFGsYLCgqG6eKcsZPy6gLCjge_klgUiWHE
telegram:botName=TestBgErp_bot

# параметр пользователя в котором будет храниться chatId
telegram:userParamId=90

# параметр процесса в котором будет храниться chatId
telegram:processParamId=91

Настройка типа процесса

В конфигурации типа процесса может быть настроена автоматизация работы с Telegram с помощью скрипта в doExpression простого обработчика событий. Ниже приведено несколько примеров возможных действий по различным событиям в процессе.

При изменении статуса, отправляеться сообщение в чаты всех исполнителей процесса и чат самого процесса:

onProcessEvent.1.events=statusChanged
onProcessEvent.1.doExpression=<<END
        telegram.sendMessage(process, "Изменился статус");
END

При изменении статуса, отправляеться сообщение только в чат самого процесса:

onProcessEvent.2.events=statusChanged
onProcessEvent.2.doExpression=<<END
        telegram.sendMassageForProcess(process, "Изменился статус");
END

Форматирование текста сообщений Markdown

В данный момент поддерживается только полужирное начертание, курсив, моноширинный шрифт и ссылки.

*полужирный*
_курсив_
[ссылка](http://www.example.com/)
`строчный моноширинный`
```text
блочный моноширинный (можно писать код)
```

Пример использования:

onProcessEvent.{@cnt}.doExpression=<<END
    text = "*Тип процесса: * " + process.getTypeTitle().concat( NEW_LINE );
    text+="_Код исполнителя_: " + process.getExecutorIds().toString().concat( NEW_LINE );
    text+="`Описание:` " + process.getDescription();
    telegram.sendMessage(process, text);
END
i0162

Объект telegram класса ru.bgerp.plugin.telegram.DefaultProcessorFunctions с функциями API предоставляется плагином.