Отправка сообщений из "1С: Предприятие" в мессенджер MyChat через REST

Отправка сообщений из "1С: Предприятие" в мессенджер MyChat через REST

Вы можете использовать любые команды из списка Integration API, синтаксис и параметры полностью совпадают.

 

В примере отправляется приватное сообщение от имени встроенного робота (Elisa) пользователю с email "johnshow@winterfell.com". Никаких DLL библиотек или внешних компонент не требуется.


  Сервер = "192.168.10.1";
  Порт = 80;
  Ресурс = "/API/?data=";
  Ключ = "iddqd";
  UINПолучателя = "3";
    
  ТекстСообщения = "Тестовое сообщение от " + ТекущаяДата() + Символы.ВК + Символы.ПС + "строка 2";

  СтруктураДанных = Новый Структура;
  СтруктураДанных.Вставить("cmd", "0002");
  СтруктураДанных.Вставить("UserFrom", "johnsnow@winterfell.com");
  СтруктураДанных.Вставить("UserTo", UINПолучателя);
  СтруктураДанных.Вставить("Msg", ТекстСообщения);
  СтруктураДанных.Вставить("APIStype", "mcrest");
  СтруктураДанных.Вставить("ServerKey", Ключ);
    
  ЗаписьJSON = Новый ЗаписьJSON;
  ЗаписьJSON.УстановитьСтроку(); 
  ЗаписатьJSON(ЗаписьJSON, СтруктураДанных);
  СтрокаJSON = ЗаписьJSON.Закрыть();  
    
    Попытка
        HTTP = Новый HTTPСоединение(Сервер,Порт,,,,30);
        HTTPЗапрос = Новый HTTPЗапрос(Ресурс);
        HTTPЗапрос.Заголовки.Вставить("Content-type", "application/x-www-form-urlencoded");
        HTTPЗапрос.УстановитьТелоИзСтроки(СтрокаJSON, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать);
        Результат  = HTTP.ОтправитьДляОбработки(HTTPЗапрос);
        Если Результат.КодСостояния <> 200 Тогда
            Сообщить("Ошибка при отправке запроса: " + Результат.КодСостояния);
        КонецЕсли;
    Исключение
        Сообщить("Ошибка при отправке запроса: " + ОписаниеОшибки());
    КонецПопытки;

 

Второй пример, то же самое, но через https, если ваш внутренний сервер NodeJS использует шифрование. У вас должен быть корректный сертификат, выданный на реально существующий домен.


  Сервер = "my-domain.com";
  Порт = 443;
  Ресурс = "/API/?data=";
  Ключ = "iddqd";
  UINПолучателя = "3";
    
  ТекстСообщения = "Тестовое сообщение от " + ТекущаяДата() + Символы.ВК + Символы.ПС + "строка 2";

  СтруктураДанных = Новый Структура;
  СтруктураДанных.Вставить("cmd", "0002");
  СтруктураДанных.Вставить("UserFrom", "johnsnow@winterfell.com");
  СтруктураДанных.Вставить("UserTo", UINПолучателя);
  СтруктураДанных.Вставить("Msg", ТекстСообщения);
  СтруктураДанных.Вставить("APIStype", "mcrest");
  СтруктураДанных.Вставить("ServerKey", Ключ);
    
  ЗаписьJSON = Новый ЗаписьJSON;
  ЗаписьJSON.УстановитьСтроку(); 
  ЗаписатьJSON(ЗаписьJSON, СтруктураДанных);
  СтрокаJSON = ЗаписьJSON.Закрыть();  
    
    Попытка
        ssl = Новый ЗащищенноеСоединениеOpenSSL(
              Новый СертификатКлиентаWindows(
              СпособВыбораСертификатаWindows.Выбирать),
              Новый СертификатыУдостоверяющихЦентровWindows()); 
        HTTP = Новый HTTPСоединение(Сервер,Порт,,,,30,ssl);
        HTTPЗапрос = Новый HTTPЗапрос(Ресурс);
        HTTPЗапрос.Заголовки.Вставить("Content-type", "application/x-www-form-urlencoded");
        HTTPЗапрос.УстановитьТелоИзСтроки(СтрокаJSON, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать);
        Результат  = HTTP.ОтправитьДляОбработки(HTTPЗапрос);
        Если Результат.КодСостояния <> 200 Тогда
            Сообщить("Ошибка при отправке запроса: " + Результат.КодСостояния);
        КонецЕсли;
    Исключение
        Сообщить("Ошибка при отправке запроса: " + ОписаниеОшибки());
    КонецПопытки;

 

Результат работы
 

Отправка приватного сообщения из 1С в MyChat через REST

 

Ещё посмотреть

Команды MyChat Integration API

Список ошибок MyChat Integration API

C#

Delphi XE3

Java

Python

REST

Работа через сокеты