An open API service indexing awesome lists of open source software.

https://github.com/oscript-library/messenger

Отправка сообщений адресатам, используя разные транспорты
https://github.com/oscript-library/messenger

Last synced: 30 days ago
JSON representation

Отправка сообщений адресатам, используя разные транспорты

Awesome Lists containing this project

README

          

# Отправка сообщений адресатам, используя разные транспорты

[![GitHub release](https://img.shields.io/github/release/bia-technologies/messenger.svg)](https://github.com/bia-technologies/messenger)

## Введение

Библиотека на 1Script, предоставляющая интерфейсы отправки сообщений посредством различных транспортов.

## Использование

Перед отправкой сообщения необходимо выполнить инициализацию нужного транспорта. Доступные транспорты можно получить методом `ДоступныеТранспорты()` либо создать объект, передав в конструктор `ИСТИНА`.

В зависимости от выбранного транспорта могут отличаться входные параметры методов инициализации и отправки. Для того, чтобы узнать параметры, которые необходимо передавать нужно вызвать метод `ИнициализироватьТранспорт` указав в качестве параметра только идентификатор транспорта.

## Доступные транспорты

В библиотеке на данный момент поддерживаются указанные ниже транспорты

### Slack

Для использования необходимо зарегистрировать бота, получить его токен авторизации и дать доступ в необходимые каналы.
Описание API `https://api.slack.com/bot-users`.

### RocketChat

Для использования необходимо создать пользователя-бота, получить его параметры авторизации.
Описание API `https://rocket.chat/docs/developer-guides/rest-api`.

#### Пример RocketChat

Мессенджер = Новый Мессенджер();
Мессенджер.ИнициализироватьТранспорт("rocketchat", Новый Структура("Логин, Пароль, АдресСервера", "user-bot", "pass-bot", "https://rocketchat.mycompany.ru");
Мессенджер.ОтправитьСообщение("rocketchat", "chanel", "Всем привет", Новый Структура("ТипСообщения", "Внимание"));
Мессенджер.ОтправитьСообщение("rocketchat", "@user", "@User, привет!", Новый Структура("ТипСообщения", ":pensive:"));

### SMS

На данный момент поддерживается отправка сообщений через операторов SMS-Bliss, Infobip и sms4b.
Для использования необходимо заключить договор с соответствующим оператором.

- SMS-Bliss: `https://smsbliss.ru/`
- Infobip: `http://www.infobip.com.ru/`
- sms4b: `https://www.sms4b.ru/`

### Gitter

Для использования необходимо получить токен авторизации `https://developer.gitter.im/apps`.
Имя комнаты указывается полностью ИмяОрганизации/ИмяРепозитория.

Например для `https://gitter.im/asosnoviy/Lobby` имя комнаты `asosnoviy/Lobby`.

#### Пример Gitter

ИмяКомнаты = "organization/repo";
Мессенджер = Новый Мессенджер();
Мессенджер.ИнициализироватьТранспорт("gitter", Новый Структура("Логин", ТокенПользователя));
Мессенджер.ОтправитьСообщение("gitter", ИмяКомнаты, "Всем привет!");

### Telegram

Для использования Необходимо создать бота через канал @BotFather и получить токен `https://tlgrm.ru/docs/bots#botfather`.

#### Пример Telegram

Мессенджер = Новый Мессенджер();
Мессенджер.ИнициализироватьТранспорт("telegram", Новый Структура("Логин", BotID));
Сообщение = "Что-то пошло не так"; //сообщение как html
Мессенджер.ОтправитьСообщение("telegram", "-***169", Сообщение, , "html");

Сообщение = "**Что-то пошло не так**"; //сообщение как markdown
Мессенджер.ОтправитьСообщение("telegram", "-***169", Сообщение, , "md");

Сообщение = "Что-то пошло не так"; //сообщение как просто текст
Мессенджер.ОтправитьСообщение("telegram", "-***169", Сообщение);

### Mattermost

Для использования необходимо создать hook `https://developers.mattermost.com/integrate/webhooks/incoming/`.

#### Пример Mattermost

Сервер = "http://localhost";
Hook = "00000000000000000000";
Мессенджер = Новый Мессенджер();
Мессенджер.ИнициализироватьТранспорт("mattermost", Новый Структура("Сервер, Hook", Сервер, Hook));
Мессенджер.ОтправитьСообщение("mattermost", "test-channel", "Всем привет!");

## Добавление новых транспортов

Для добавления нового транспорта необходимо:

- Cкопировать файл `Транспорты\ТранспортШаблон.os`
- Изменить имя по аналогии с существующими
- Дополнить методы программного интерфеса своей реализацией отправки сообщений новым транспортом

## Обратная совместимость

**По умолчанию, при создании объекта класса используется новая версия библиотеки в которой удалены многие методы прошлой версии. Таким образом нарушена обратная совместимость.**

Для плавного перехода на новую версию библиотеки прошлая версия реализации библиотеки вынесена в класс `Мессенджер_v1`.