From e65881fc4d25f04431166a1068c935960c27fb21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A0=D0=B5=D0=BA=D0=B8=D1=82=D1=8F=D0=BD=D1=81=D0=BA?= =?UTF-8?q?=D0=B8=D0=B9=20=D0=90=D0=BB=D0=B5=D0=BA=D1=81=D0=B0=D0=BD=D0=B4?= =?UTF-8?q?=D1=80?= Date: Fri, 6 Oct 2023 12:52:35 +0300 Subject: [PATCH 1/2] =?UTF-8?q?=D0=9E=D1=82=D0=BF=D1=80=D0=B0=D0=B2=D0=BA?= =?UTF-8?q?=D0=B0=20=D1=81=D0=BE=D0=BE=D0=B1=D1=89=D0=B5=D0=BD=D0=B8=D0=B9?= =?UTF-8?q?=20=D1=87=D0=B5=D1=80=D0=B5=D0=B7=20=D0=AF=D0=BD=D0=B4=D0=B5?= =?UTF-8?q?=D0=BA=D1=81=20=D0=9C=D0=B5=D1=81=D1=81=D0=B5=D0=BD=D0=B4=D0=B6?= =?UTF-8?q?=D0=B5=D1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...20\275\320\264\320\266\320\265\321\200.os" | 115 ++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 "src/\320\242\321\200\320\260\320\275\321\201\320\277\320\276\321\200\321\202\321\213/\320\242\321\200\320\260\320\275\321\201\320\277\320\276\321\200\321\202\320\257\320\275\320\264\320\265\320\272\321\201\320\234\320\265\321\201\321\201\320\265\320\275\320\264\320\266\320\265\321\200.os" diff --git "a/src/\320\242\321\200\320\260\320\275\321\201\320\277\320\276\321\200\321\202\321\213/\320\242\321\200\320\260\320\275\321\201\320\277\320\276\321\200\321\202\320\257\320\275\320\264\320\265\320\272\321\201\320\234\320\265\321\201\321\201\320\265\320\275\320\264\320\266\320\265\321\200.os" "b/src/\320\242\321\200\320\260\320\275\321\201\320\277\320\276\321\200\321\202\321\213/\320\242\321\200\320\260\320\275\321\201\320\277\320\276\321\200\321\202\320\257\320\275\320\264\320\265\320\272\321\201\320\234\320\265\321\201\321\201\320\265\320\275\320\264\320\266\320\265\321\200.os" new file mode 100644 index 0000000..bb7dbbb --- /dev/null +++ "b/src/\320\242\321\200\320\260\320\275\321\201\320\277\320\276\321\200\321\202\321\213/\320\242\321\200\320\260\320\275\321\201\320\277\320\276\321\200\321\202\320\257\320\275\320\264\320\265\320\272\321\201\320\234\320\265\321\201\321\201\320\265\320\275\320\264\320\266\320\265\321\200.os" @@ -0,0 +1,115 @@ + +/////////////////////////////////////////////////////////////////////////////////////////////// +// +// Модуль транспорта отправки сообщений Яндекс Мессенджер +// +/////////////////////////////////////////////////////////////////////////////////////////////// + +Перем ПараметрыАвторизации; // хранит структуру авторизации +Перем ОписаниеПротокола; // хранит структуру описания протокола + +/////////////////////////////////////////////////////////////////////////////////////////////// +// Стандартный интерфейс +/////////////////////////////////////////////////////////////////////////////////////////////// + +// Протокол +// Метод возвращает описание используемого протокола +// +// Возвращаемое значение: +// Структура - Описание протокола +// { +// Имя - Строка - Системное имя транспорта +// Представление - Строка - пользовательское представление транспорта +// Описание - Строка - Строковое описание транспорта +// Операторы - Структура - Возможные операторы транспорта +// } +// +Функция Протокол() Экспорт + + Если ОписаниеПротокола = Неопределено Тогда + + ОписаниеПротокола = Новый Структура("Имя, Представление, Описание, Операторы", "ЯндексМессенджер", "Яндекс Мессенджер", "Отправка сообщений в каналы Яндекс Мессенджер", Неопределено); + + КонецЕсли; + + Возврат ОписаниеПротокола; + +КонецФункции // Протокол() + +// Инициализация +// Инициализация параметров транспорта +// +// Параметры: +// ПараметрыИнициализации - Структура - набор параметров инициализации +// +Процедура Инициализация(ПараметрыИнициализации) Экспорт + + Если ПараметрыИнициализации = Неопределено Тогда + + Сообщить(СтрШаблон("Для инициализации транспорта %1 необходимо передавать в параметрах: ", Протокол().Представление)); + Сообщить(" - Логин"); + + ВызватьИсключение СтрШаблон("Инициализация транспорта %1 невыполнена", Протокол().Представление); + + КонецЕсли; + + ПараметрыАвторизации = Новый Структура("Токен", ПараметрыИнициализации.Логин); + +КонецПроцедуры // Инициализация() + +// ОтправитьСообщение +// Метод отправки сообщения +// +// Параметры: +// Адресат - Строка - Адресат сообщения +// Сообщение - Строка - Текст отправляемого сообщения +// ДополнительныеПараметры - Структура - Набор дополнительных параметров +// +Процедура ОтправитьСообщение(Адресат, Сообщение, ДополнительныеПараметры = Неопределено) Экспорт + + Если ПараметрыАвторизации = Неопределено Тогда + + ВызватьИсключение СтрШаблон("Для отправки сообщения необходимо выполнить инициализацию транспорта %1", Протокол().Представление); + + КонецЕсли; + + ПараметрыСообщения = Новый Структура("chat_id, text", Адресат, Сообщение); + + ОтветHTTP = ВызватьМетодСообщенияЯндексМессенджерAPI("sendText", ПараметрыСообщения); + + +КонецПроцедуры // ОтправитьСообщение() + +Функция ВызватьМетодСообщенияЯндексМессенджерAPI(ИмяМетода, Параметры) + + Прокси = Новый ИнтернетПрокси(Истина); + json = Новый ПарсерJSON(); + + ИмяСервера = "https://botapi.messenger.yandex.net"; + + URL = "/bot/v1/messages" + + "/" + ИмяМетода; + + Заголовки = Новый Соответствие; + Заголовки.Вставить("Authorization", "OAuth " + ПараметрыАвторизации.Токен); + Заголовки.Вставить("Content-Type", "application/json"); + + HTTPЗапрос = Новый HTTPЗапрос(URL, Заголовки); + + ОписаниеСообщения = Новый Структура; + ОписаниеСообщения.Вставить("chat_id", Параметры.chat_id); + ОписаниеСообщения.Вставить("text", Параметры.text); + + HTTPЗапрос.УстановитьТелоИзСтроки(json.ЗаписатьJSON(ОписаниеСообщения)); + + HTTP = Новый HTTPСоединение(ИмяСервера,,,, Прокси); + ОтветHTTP = HTTP.ОтправитьДляОбработки(HTTPЗапрос); + + Возврат ОтветHTTP; + +КонецФункции + + +/////////////////////////////////////////////////////////////////////////////////////////////// + +ПараметрыАвторизации = Неопределено; From 7cf8a16ca1562495563c89a3fa82c4dec171e2e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A0=D0=B5=D0=BA=D0=B8=D1=82=D1=8F=D0=BD=D1=81=D0=BA?= =?UTF-8?q?=D0=B8=D0=B9=20=D0=90=D0=BB=D0=B5=D0=BA=D1=81=D0=B0=D0=BD=D0=B4?= =?UTF-8?q?=D1=80?= Date: Sat, 7 Oct 2023 14:01:43 +0300 Subject: [PATCH 2/2] =?UTF-8?q?=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B0=20=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BA=D0=B0=20?= =?UTF-8?q?=D0=BF=D0=BE=20=D0=AF=D0=BD=D0=B4=D0=B5=D0=BA=D1=81=20=D0=9C?= =?UTF-8?q?=D0=B5=D1=81=D1=81=D0=B5=D0=BD=D0=B4=D0=B6=D0=B5=D1=80=D1=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- readme.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/readme.md b/readme.md index b777ff2..4fe3604 100644 --- a/readme.md +++ b/readme.md @@ -85,6 +85,18 @@ Мессенджер.ИнициализироватьТранспорт("mattermost", Новый Структура("Сервер, Hook", Сервер, Hook)); Мессенджер.ОтправитьСообщение("mattermost", "test-channel", "Всем привет!"); +### Яндекс Мессенджер + +Для использования Необходимо создать бота и получить токен `https://yandex.ru/support/business/bot-platform.html?ysclid=lnfx6acwzi640564004`. + +#### Пример Яндекс Мессенджер + + Мессенджер = Новый Мессенджер(); + Мессенджер.ИнициализироватьТранспорт("ЯндексМессенджер", Новый Структура("Логин", BotID)); + + Сообщение = "**Пример полужирного текста**"; + Мессенджер.ОтправитьСообщение("ЯндексМессенджер", адрессат, Сообщение); + ## Добавление новых транспортов Для добавления нового транспорта необходимо: