1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2026-06-20 09:19:27 +02:00

GAPI: Получение уведомлений

This commit is contained in:
Anton Titovets
2025-03-12 21:39:04 +03:00
parent 687a2d72e4
commit a6dc346430
10 changed files with 7603 additions and 6801 deletions
BIN
View File
Binary file not shown.
+6809 -6785
View File
File diff suppressed because it is too large Load Diff
+109
View File
@@ -853,6 +853,115 @@
#КонецОбласти
#Область ПолучениеУведомлений
// Получить уведомление
// Получает одно уведомление из очереди
//
// Примечание:
// После успешного принятия уведомления, необходимо удалить его из очереди при помощи метода `УдалитьУведомлениеИзОчереди`
// Метод в документации API: [ReceiveNotification](@green-api.com/docs/api/receiving/technology-http-api/ReceiveNotification/)
//
// Параметры:
// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
// Таймаут - Число - Таймаут ожидания новых сообщений при пустой очереди - timeout
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
Функция ПолучитьУведомление(Знач ПараметрыДоступа, Знач Таймаут = 5) Экспорт
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("receiveTimeout", Таймаут, "Число", Параметры);
URL = СформироватьОсновнойURL(ПараметрыДоступа, "receiveNotification");
Ответ = OPI_Инструменты.Get(URL, Параметры);
Возврат Ответ;
КонецФункции
// Удалить уведомление из очереди
// Удаляет уведомление из очерели после успешного получения
//
// Примечание:
// Метод в документации API: [DeleteNotification](@green-api.com/docs/api/receiving/technology-http-api/DeleteNotification/)
//
// Параметры:
// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
// IDДоставки - Строка, Число - Идентификатор доставки из метода ПолучитьУведомление - receipt
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
Функция УдалитьУведомлениеИзОчереди(Знач ПараметрыДоступа, Знач IDДоставки) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDДоставки);
URL = СформироватьОсновнойURL(ПараметрыДоступа, "deleteNotification");
URL = СтрШаблон("%1/%2", URL, IDДоставки);
Ответ = OPI_Инструменты.Delete(URL);
Возврат Ответ;
КонецФункции
// Скачать файл сообщения
// Получает ссылку на скачивание файла из входящего сообщения
//
// Примечание:
// Метод в документации API: [DownloadFile](@green-api.com/docs/api/receiving/files/DownloadFile/)
//
// Параметры:
// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
// IDЧата - Строка - Идентификатор чата - chat
// IDСообщения - Строка - Идентификатор сообщения с файлом - message
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
Функция СкачатьФайлСообщения(Знач ПараметрыДоступа, Знач IDЧата, Знач IDСообщения) Экспорт
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("chatId" , IDЧата , "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("idMessage", IDСообщения, "Строка", Параметры);
URL = СформироватьОсновнойURL(ПараметрыДоступа, "downloadFile");
Ответ = OPI_Инструменты.Post(URL, Параметры);
Возврат Ответ;
КонецФункции
// Установить отметку прочтения
// Устанавливает отметку "Прочитано" для сообщения или всех сообщений чата
//
// Примечание:
// Метод в документации API: [ReadChat](@green-api.com/docs/api/marks/ReadChat/)
//
// Параметры:
// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
// IDЧата - Строка - Идентификатор чата - chat
// IDСообщения - Строка - Идентификатор сообщения. Все сообщения, если не заполнено - message
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
Функция УстановитьОтметкуПрочтения(Знач ПараметрыДоступа, Знач IDЧата, Знач IDСообщения = "") Экспорт
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("chatId" , IDЧата , "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("idMessage" , IDСообщения, "Строка", Параметры);
URL = СформироватьОсновнойURL(ПараметрыДоступа, "readChat");
Ответ = OPI_Инструменты.Post(URL, Параметры);
Возврат Ответ;
КонецФункции
#КонецОбласти
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
+110 -5
View File
@@ -2453,6 +2453,25 @@
КонецПроцедуры
Процедура GAPI_ПолучениеУведомлений() Экспорт
ПараметрыТеста = Новый Структура;
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_ApiURL" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_MediaURL" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_IdInstance" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_Token" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_AccountID" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_FileMessageID" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_TestGroupID" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_DownloadMessageID", ПараметрыТеста);
GreenAPI_ПолучитьУведомление(ПараметрыТеста);
GreenAPI_УдалитьУведомлениеИзОчереди(ПараметрыТеста);
GreenAPI_СкачатьФайлСообщения(ПараметрыТеста);
GreenAPI_УстановитьОтметкуПрочтения(ПараметрыТеста);
КонецПроцедуры
#КонецОбласти
#КонецОбласти
@@ -18454,11 +18473,12 @@
ПараметрыДоступа = OPI_GreenAPI.СформироватьПараметрыДоступа(ApiUrl, MediaUrl, IdInstance, ApiTokenInstance);
СтруктураНастроек = Новый Структура;
СтруктураНастроек.Вставить("pollMessageWebhook" , "yes");
СтруктураНастроек.Вставить("incomingBlockWebhook" , "no");
СтруктураНастроек.Вставить("incomingCallWebhook" , "no");
СтруктураНастроек.Вставить("editedMessageWebhook" , "yes");
СтруктураНастроек.Вставить("deletedMessageWebhook", "yes");
СтруктураНастроек.Вставить("pollMessageWebhook" , "yes");
СтруктураНастроек.Вставить("incomingBlockWebhook" , "no");
СтруктураНастроек.Вставить("incomingCallWebhook" , "no");
СтруктураНастроек.Вставить("editedMessageWebhook" , "yes");
СтруктураНастроек.Вставить("deletedMessageWebhook" , "yes");
СтруктураНастроек.Вставить("outgoingAPIMessageWebhook", "yes");
Результат = OPI_GreenAPI.УстановитьНастройкиИнстанса(СтруктураНастроек, ПараметрыДоступа);
@@ -19045,6 +19065,91 @@
КонецПроцедуры
Процедура GreenAPI_ПолучитьУведомление(ПараметрыФункции)
ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
ПараметрыДоступа = OPI_GreenAPI.СформироватьПараметрыДоступа(ApiUrl, MediaUrl, IdInstance, ApiTokenInstance);
Результат = OPI_GreenAPI.ПолучитьУведомление(ПараметрыДоступа);
// END
JSON = OPI_Инструменты.JSONСтрокой(Результат);
JSON = СтрЗаменить(JSON, ПараметрыФункции["GreenAPI_AccountID"], "1234567890@c.us");
Результат = OPI_Инструменты.JsonВСтруктуру(JSON, Истина);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьУведомление", "GreenAPI");
OPI_ПолучениеДанныхТестов.Проверка_ГринУведомление(Результат);
IDУведомления = Результат["receiptId"];
OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("GreenAPI_ReceiptID", IDУведомления);
OPI_Инструменты.ДобавитьПоле("GreenAPI_ReceiptID", IDУведомления, "Строка", ПараметрыФункции);
КонецПроцедуры
Процедура GreenAPI_УдалитьУведомлениеИзОчереди(ПараметрыФункции)
ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
IDДоставки = ПараметрыФункции["GreenAPI_ReceiptID"];
ПараметрыДоступа = OPI_GreenAPI.СформироватьПараметрыДоступа(ApiUrl, MediaUrl, IdInstance, ApiTokenInstance);
Результат = OPI_GreenAPI.УдалитьУведомлениеИзОчереди(ПараметрыДоступа, IDДоставки);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьУведомлениеИзОчереди", "GreenAPI");
OPI_ПолучениеДанныхТестов.Проверка_РезультатИстина(Результат);
КонецПроцедуры
Процедура GreenAPI_СкачатьФайлСообщения(ПараметрыФункции)
ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
IDЧата = ПараметрыФункции["GreenAPI_TestGroupID"];
IDСообщения = ПараметрыФункции["GreenAPI_DownloadMessageID"];
ПараметрыДоступа = OPI_GreenAPI.СформироватьПараметрыДоступа(ApiUrl, MediaUrl, IdInstance, ApiTokenInstance);
Результат = OPI_GreenAPI.СкачатьФайлСообщения(ПараметрыДоступа, IDЧата, IDСообщения);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СкачатьФайлСообщения", "GreenAPI");
OPI_ПолучениеДанныхТестов.Проверка_ГринВходнойФайл(Результат);
КонецПроцедуры
Процедура GreenAPI_УстановитьОтметкуПрочтения(ПараметрыФункции)
ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
IDЧата = ПараметрыФункции["GreenAPI_TestGroupID"];
IDСообщения = ПараметрыФункции["GreenAPI_DownloadMessageID"];
ПараметрыДоступа = OPI_GreenAPI.СформироватьПараметрыДоступа(ApiUrl, MediaUrl, IdInstance, ApiTokenInstance);
Результат = OPI_GreenAPI.УстановитьОтметкуПрочтения(ПараметрыДоступа, IDЧата, IDСообщения);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УстановитьОтметкуПрочтения", "GreenAPI");
OPI_ПолучениеДанныхТестов.Проверка_ГринПрочтение(Результат);
КонецПроцедуры
#КонецОбласти
#КонецОбласти
+173 -2
View File
@@ -2412,6 +2412,22 @@
КонецПроцедуры
Процедура CLI_GAPI_ПолучениеУведомлений() Экспорт
ПараметрыТеста = Новый Структура;
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_ApiURL" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_MediaURL" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_IdInstance" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_Token" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_AccountID" , ПараметрыТеста);
CLI_GreenAPI_ПолучитьУведомление(ПараметрыТеста);
CLI_GreenAPI_УдалитьУведомлениеИзОчереди(ПараметрыТеста);
CLI_GreenAPI_СкачатьФайлСообщения(ПараметрыТеста);
CLI_GreenAPI_УстановитьОтметкуПрочтения(ПараметрыТеста);
КонецПроцедуры
#КонецОбласти
#КонецОбласти
@@ -19751,8 +19767,6 @@
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "СоздатьБазуДанных", Опции);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛогCLI(Результат, "СоздатьБазуДанных", "PostgreSQL");
OPI_ПолучениеДанныхТестов.Проверка_РезультатИстина(Результат);
@@ -19761,6 +19775,22 @@
OPI_ПолучениеДанныхТестов.ЗаписатьЛогCLI(Результат, "СоздатьБазуДанных (существующая)", "PostgreSQL");
OPI_ПолучениеДанныхТестов.Проверка_РезультатЛожь(Результат);
Адрес = "api.athenaeum.digital";
Порт = "5433";
СтрокаПодключенияTLS = OPI_PostgreSQL.СформироватьСтрокуПодключения(Адрес, "postgres", Логин, Пароль, Порт);
НастройкиTLS = OPI_PostgreSQL.ПолучитьНастройкиTls(Ложь);
Опции = Новый Структура;
Опции.Вставить("base" , База);
Опции.Вставить("dbc" , СтрокаПодключенияTLS);
Опции.Вставить("tls" , НастройкиTLS);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "СоздатьБазуДанных", Опции);
OPI_ПолучениеДанныхТестов.ЗаписатьЛогCLI(Результат, "СоздатьБазуДанных (TLS)", "PostgreSQL");
OPI_ПолучениеДанныхТестов.Проверка_РезультатИстина(Результат);
КонецПроцедуры
Процедура CLI_PostgreSQL_СоздатьТаблицу(ПараметрыФункции)
@@ -20322,6 +20352,22 @@
OPI_ПолучениеДанныхТестов.ЗаписатьЛогCLI(Результат, "УдалитьБазуДанных", "PostgreSQL");
OPI_ПолучениеДанныхТестов.Проверка_РезультатИстина(Результат);
Адрес = "api.athenaeum.digital";
Порт = "5433";
СтрокаПодключенияTLS = OPI_PostgreSQL.СформироватьСтрокуПодключения(Адрес, "postgres", Логин, Пароль, Порт);
НастройкиTLS = OPI_PostgreSQL.ПолучитьНастройкиTls(Ложь);
Опции = Новый Структура;
Опции.Вставить("base" , База);
Опции.Вставить("dbc" , СтрокаПодключенияTLS);
Опции.Вставить("tls" , НастройкиTLS);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("postgres", "УдалитьБазуДанных", Опции);
OPI_ПолучениеДанныхТестов.ЗаписатьЛогCLI(Результат, "УдалитьБазуДанных (TLS)", "PostgreSQL");
OPI_ПолучениеДанныхТестов.Проверка_РезультатИстина(Результат);
КонецПроцедуры
Процедура CLI_PostgreSQL_ПолучитьСтруктуруФильтраЗаписей(ПараметрыФункции)
@@ -21335,6 +21381,131 @@
КонецПроцедуры
Процедура CLI_GreenAPI_ПолучитьУведомление(ПараметрыФункции)
ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
Опции = Новый Структура;
Опции.Вставить("api" , ApiUrl);
Опции.Вставить("media", MediaUrl);
Опции.Вставить("id" , IdInstance);
Опции.Вставить("token", ApiTokenInstance);
ПараметрыДоступа = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "СформироватьПараметрыДоступа", Опции);
Опции = Новый Структура;
Опции.Вставить("access" , ПараметрыДоступа);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "ПолучитьУведомление", Опции);
JSON = OPI_Инструменты.JSONСтрокой(Результат);
JSON = СтрЗаменить(JSON, ПараметрыФункции["GreenAPI_AccountID"], "1234567890@c.us");
Результат = OPI_Инструменты.JsonВСтруктуру(JSON, Истина);
OPI_ПолучениеДанныхТестов.ЗаписатьЛогCLI(Результат, "ПолучитьУведомление", "GreenAPI");
OPI_ПолучениеДанныхТестов.Проверка_ГринУведомление(Результат);
IDУведомления = Результат["receiptId"];
OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("GreenAPI_ReceiptID", IDУведомления);
OPI_Инструменты.ДобавитьПоле("GreenAPI_ReceiptID", IDУведомления, "Строка", ПараметрыФункции);
КонецПроцедуры
Процедура CLI_GreenAPI_УдалитьУведомлениеИзОчереди(ПараметрыФункции)
ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
IDДоставки = ПараметрыФункции["GreenAPI_ReceiptID"];
Опции = Новый Структура;
Опции.Вставить("api" , ApiUrl);
Опции.Вставить("media", MediaUrl);
Опции.Вставить("id" , IdInstance);
Опции.Вставить("token", ApiTokenInstance);
ПараметрыДоступа = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "СформироватьПараметрыДоступа", Опции);
Опции = Новый Структура;
Опции.Вставить("access" , ПараметрыДоступа);
Опции.Вставить("receipt", IDДоставки);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "УдалитьУведомлениеИзОчереди", Опции);
OPI_ПолучениеДанныхТестов.ЗаписатьЛогCLI(Результат, "УдалитьУведомлениеИзОчереди", "GreenAPI");
OPI_ПолучениеДанныхТестов.Проверка_РезультатИстина(Результат);
КонецПроцедуры
Процедура CLI_GreenAPI_СкачатьФайлСообщения(ПараметрыФункции)
ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
IDЧата = ПараметрыФункции["GreenAPI_TestGroupID"];
IDСообщения = ПараметрыФункции["GreenAPI_DownloadMessageID"];
Опции = Новый Структура;
Опции.Вставить("api" , ApiUrl);
Опции.Вставить("media", MediaUrl);
Опции.Вставить("id" , IdInstance);
Опции.Вставить("token", ApiTokenInstance);
ПараметрыДоступа = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "СформироватьПараметрыДоступа", Опции);
Опции = Новый Структура;
Опции.Вставить("access" , ПараметрыДоступа);
Опции.Вставить("chat" , IDЧата);
Опции.Вставить("message", IDСообщения);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "СкачатьФайлСообщения", Опции);
OPI_ПолучениеДанныхТестов.ЗаписатьЛогCLI(Результат, "СкачатьФайлСообщения", "GreenAPI");
OPI_ПолучениеДанныхТестов.Проверка_ГринВходнойФайл(Результат);
КонецПроцедуры
Процедура CLI_GreenAPI_УстановитьОтметкуПрочтения(ПараметрыФункции)
ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
IDЧата = ПараметрыФункции["GreenAPI_TestGroupID"];
IDСообщения = ПараметрыФункции["GreenAPI_DownloadMessageID"];
Опции = Новый Структура;
Опции.Вставить("api" , ApiUrl);
Опции.Вставить("media", MediaUrl);
Опции.Вставить("id" , IdInstance);
Опции.Вставить("token", ApiTokenInstance);
ПараметрыДоступа = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "СформироватьПараметрыДоступа", Опции);
Опции = Новый Структура;
Опции.Вставить("access" , ПараметрыДоступа);
Опции.Вставить("chat" , IDЧата);
Опции.Вставить("message", IDСообщения);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "УстановитьОтметкуПрочтения", Опции);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛогCLI(Результат, "УстановитьОтметкуПрочтения", "GreenAPI");
OPI_ПолучениеДанныхТестов.Проверка_ГринПрочтение(Результат);
КонецПроцедуры
#КонецОбласти
#КонецОбласти
@@ -280,8 +280,9 @@
НовыйТест(ТаблицаТестов, "Postgres_ОсновныеМетоды" , "Основные методы" , Postgres);
НовыйТест(ТаблицаТестов, "Postgres_ORM" , "ORM" , Postgres);
НовыйТест(ТаблицаТестов, "GAPI_УправлениеГруппами" , "Управление группами" , GreenAPI);
НовыйТест(ТаблицаТестов, "GAPI_Аккаунт" , "Аккаунт" , GreenAPI);
НовыйТест(ТаблицаТестов, "GAPI_ОтправкаСообщений" , "Отправка сообщений" , GreenAPI);
НовыйТест(ТаблицаТестов, "GAPI_ПолучениеУведомлений" , "Получение уведомлений" , GreenAPI);
НовыйТест(ТаблицаТестов, "GAPI_Аккаунт" , "Аккаунт" , GreenAPI);
Возврат ТаблицаТестов;
@@ -2258,6 +2259,24 @@
КонецПроцедуры
Процедура Проверка_ГринУведомление(Знач Результат) Экспорт
ОжидаетЧто(Результат["receiptId"]).Заполнено();
КонецПроцедуры
Процедура Проверка_ГринВходнойФайл(Знач Результат) Экспорт
ОжидаетЧто(Результат["downloadUrl"]).Заполнено();
КонецПроцедуры
Процедура Проверка_ГринПрочтение(Знач Результат) Экспорт
ОжидаетЧто(Результат["setRead"]).Равно(Истина);
КонецПроцедуры
#КонецОбласти
#КонецОбласти
@@ -2294,9 +2313,9 @@
КонецФункции
Функция ПолучитьОбщийМодуль(Знач Имя)
Модуль = Вычислить(Имя);
Возврат Модуль;
КонецФункции
@@ -853,6 +853,115 @@
#КонецОбласти
#Область ПолучениеУведомлений
// Получить уведомление
// Получает одно уведомление из очереди
//
// Примечание:
// После успешного принятия уведомления, необходимо удалить его из очереди при помощи метода `УдалитьУведомлениеИзОчереди`
// Метод в документации API: [ReceiveNotification](@green-api.com/docs/api/receiving/technology-http-api/ReceiveNotification/)
//
// Параметры:
// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
// Таймаут - Число - Таймаут ожидания новых сообщений при пустой очереди - timeout
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
Функция ПолучитьУведомление(Знач ПараметрыДоступа, Знач Таймаут = 5) Экспорт
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("receiveTimeout", Таймаут, "Число", Параметры);
URL = СформироватьОсновнойURL(ПараметрыДоступа, "receiveNotification");
Ответ = OPI_Инструменты.Get(URL, Параметры);
Возврат Ответ;
КонецФункции
// Удалить уведомление из очереди
// Удаляет уведомление из очерели после успешного получения
//
// Примечание:
// Метод в документации API: [DeleteNotification](@green-api.com/docs/api/receiving/technology-http-api/DeleteNotification/)
//
// Параметры:
// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
// IDДоставки - Строка, Число - Идентификатор доставки из метода ПолучитьУведомление - receipt
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
Функция УдалитьУведомлениеИзОчереди(Знач ПараметрыДоступа, Знач IDДоставки) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDДоставки);
URL = СформироватьОсновнойURL(ПараметрыДоступа, "deleteNotification");
URL = СтрШаблон("%1/%2", URL, IDДоставки);
Ответ = OPI_Инструменты.Delete(URL);
Возврат Ответ;
КонецФункции
// Скачать файл сообщения
// Получает ссылку на скачивание файла из входящего сообщения
//
// Примечание:
// Метод в документации API: [DownloadFile](@green-api.com/docs/api/receiving/files/DownloadFile/)
//
// Параметры:
// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
// IDЧата - Строка - Идентификатор чата - chat
// IDСообщения - Строка - Идентификатор сообщения с файлом - message
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
Функция СкачатьФайлСообщения(Знач ПараметрыДоступа, Знач IDЧата, Знач IDСообщения) Экспорт
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("chatId" , IDЧата , "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("idMessage", IDСообщения, "Строка", Параметры);
URL = СформироватьОсновнойURL(ПараметрыДоступа, "downloadFile");
Ответ = OPI_Инструменты.Post(URL, Параметры);
Возврат Ответ;
КонецФункции
// Установить отметку прочтения
// Устанавливает отметку "Прочитано" для сообщения или всех сообщений чата
//
// Примечание:
// Метод в документации API: [ReadChat](@green-api.com/docs/api/marks/ReadChat/)
//
// Параметры:
// ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access
// IDЧата - Строка - Идентификатор чата - chat
// IDСообщения - Строка - Идентификатор сообщения. Все сообщения, если не заполнено - message
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API
Функция УстановитьОтметкуПрочтения(Знач ПараметрыДоступа, Знач IDЧата, Знач IDСообщения = "") Экспорт
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("chatId" , IDЧата , "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("idMessage" , IDСообщения, "Строка", Параметры);
URL = СформироватьОсновнойURL(ПараметрыДоступа, "readChat");
Ответ = OPI_Инструменты.Post(URL, Параметры);
Возврат Ответ;
КонецФункции
#КонецОбласти
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
@@ -280,8 +280,9 @@
НовыйТест(ТаблицаТестов, "Postgres_ОсновныеМетоды" , "Основные методы" , Postgres);
НовыйТест(ТаблицаТестов, "Postgres_ORM" , "ORM" , Postgres);
НовыйТест(ТаблицаТестов, "GAPI_УправлениеГруппами" , "Управление группами" , GreenAPI);
НовыйТест(ТаблицаТестов, "GAPI_Аккаунт" , "Аккаунт" , GreenAPI);
НовыйТест(ТаблицаТестов, "GAPI_ОтправкаСообщений" , "Отправка сообщений" , GreenAPI);
НовыйТест(ТаблицаТестов, "GAPI_ПолучениеУведомлений" , "Получение уведомлений" , GreenAPI);
НовыйТест(ТаблицаТестов, "GAPI_Аккаунт" , "Аккаунт" , GreenAPI);
Возврат ТаблицаТестов;
@@ -2258,6 +2259,24 @@
КонецПроцедуры
Процедура Проверка_ГринУведомление(Знач Результат) Экспорт
ОжидаетЧто(Результат["receiptId"]).Заполнено();
КонецПроцедуры
Процедура Проверка_ГринВходнойФайл(Знач Результат) Экспорт
ОжидаетЧто(Результат["downloadUrl"]).Заполнено();
КонецПроцедуры
Процедура Проверка_ГринПрочтение(Знач Результат) Экспорт
ОжидаетЧто(Результат["setRead"]).Равно(Истина);
КонецПроцедуры
#КонецОбласти
#КонецОбласти
+110 -5
View File
@@ -2453,6 +2453,25 @@
КонецПроцедуры
Процедура GAPI_ПолучениеУведомлений() Экспорт
ПараметрыТеста = Новый Структура;
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_ApiURL" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_MediaURL" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_IdInstance" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_Token" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_AccountID" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_FileMessageID" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_TestGroupID" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_DownloadMessageID", ПараметрыТеста);
GreenAPI_ПолучитьУведомление(ПараметрыТеста);
GreenAPI_УдалитьУведомлениеИзОчереди(ПараметрыТеста);
GreenAPI_СкачатьФайлСообщения(ПараметрыТеста);
GreenAPI_УстановитьОтметкуПрочтения(ПараметрыТеста);
КонецПроцедуры
#КонецОбласти
#КонецОбласти
@@ -18454,11 +18473,12 @@
ПараметрыДоступа = OPI_GreenAPI.СформироватьПараметрыДоступа(ApiUrl, MediaUrl, IdInstance, ApiTokenInstance);
СтруктураНастроек = Новый Структура;
СтруктураНастроек.Вставить("pollMessageWebhook" , "yes");
СтруктураНастроек.Вставить("incomingBlockWebhook" , "no");
СтруктураНастроек.Вставить("incomingCallWebhook" , "no");
СтруктураНастроек.Вставить("editedMessageWebhook" , "yes");
СтруктураНастроек.Вставить("deletedMessageWebhook", "yes");
СтруктураНастроек.Вставить("pollMessageWebhook" , "yes");
СтруктураНастроек.Вставить("incomingBlockWebhook" , "no");
СтруктураНастроек.Вставить("incomingCallWebhook" , "no");
СтруктураНастроек.Вставить("editedMessageWebhook" , "yes");
СтруктураНастроек.Вставить("deletedMessageWebhook" , "yes");
СтруктураНастроек.Вставить("outgoingAPIMessageWebhook", "yes");
Результат = OPI_GreenAPI.УстановитьНастройкиИнстанса(СтруктураНастроек, ПараметрыДоступа);
@@ -19045,6 +19065,91 @@
КонецПроцедуры
Процедура GreenAPI_ПолучитьУведомление(ПараметрыФункции)
ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
ПараметрыДоступа = OPI_GreenAPI.СформироватьПараметрыДоступа(ApiUrl, MediaUrl, IdInstance, ApiTokenInstance);
Результат = OPI_GreenAPI.ПолучитьУведомление(ПараметрыДоступа);
// END
JSON = OPI_Инструменты.JSONСтрокой(Результат);
JSON = СтрЗаменить(JSON, ПараметрыФункции["GreenAPI_AccountID"], "1234567890@c.us");
Результат = OPI_Инструменты.JsonВСтруктуру(JSON, Истина);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьУведомление", "GreenAPI");
OPI_ПолучениеДанныхТестов.Проверка_ГринУведомление(Результат);
IDУведомления = Результат["receiptId"];
OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("GreenAPI_ReceiptID", IDУведомления);
OPI_Инструменты.ДобавитьПоле("GreenAPI_ReceiptID", IDУведомления, "Строка", ПараметрыФункции);
КонецПроцедуры
Процедура GreenAPI_УдалитьУведомлениеИзОчереди(ПараметрыФункции)
ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
IDДоставки = ПараметрыФункции["GreenAPI_ReceiptID"];
ПараметрыДоступа = OPI_GreenAPI.СформироватьПараметрыДоступа(ApiUrl, MediaUrl, IdInstance, ApiTokenInstance);
Результат = OPI_GreenAPI.УдалитьУведомлениеИзОчереди(ПараметрыДоступа, IDДоставки);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьУведомлениеИзОчереди", "GreenAPI");
OPI_ПолучениеДанныхТестов.Проверка_РезультатИстина(Результат);
КонецПроцедуры
Процедура GreenAPI_СкачатьФайлСообщения(ПараметрыФункции)
ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
IDЧата = ПараметрыФункции["GreenAPI_TestGroupID"];
IDСообщения = ПараметрыФункции["GreenAPI_DownloadMessageID"];
ПараметрыДоступа = OPI_GreenAPI.СформироватьПараметрыДоступа(ApiUrl, MediaUrl, IdInstance, ApiTokenInstance);
Результат = OPI_GreenAPI.СкачатьФайлСообщения(ПараметрыДоступа, IDЧата, IDСообщения);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СкачатьФайлСообщения", "GreenAPI");
OPI_ПолучениеДанныхТестов.Проверка_ГринВходнойФайл(Результат);
КонецПроцедуры
Процедура GreenAPI_УстановитьОтметкуПрочтения(ПараметрыФункции)
ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
IDЧата = ПараметрыФункции["GreenAPI_TestGroupID"];
IDСообщения = ПараметрыФункции["GreenAPI_DownloadMessageID"];
ПараметрыДоступа = OPI_GreenAPI.СформироватьПараметрыДоступа(ApiUrl, MediaUrl, IdInstance, ApiTokenInstance);
Результат = OPI_GreenAPI.УстановитьОтметкуПрочтения(ПараметрыДоступа, IDЧата, IDСообщения);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УстановитьОтметкуПрочтения", "GreenAPI");
OPI_ПолучениеДанныхТестов.Проверка_ГринПрочтение(Результат);
КонецПроцедуры
#КонецОбласти
#КонецОбласти
@@ -2412,6 +2412,22 @@
КонецПроцедуры
Процедура CLI_GAPI_ПолучениеУведомлений() Экспорт
ПараметрыТеста = Новый Структура;
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_ApiURL" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_MediaURL" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_IdInstance" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_Token" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenAPI_AccountID" , ПараметрыТеста);
CLI_GreenAPI_ПолучитьУведомление(ПараметрыТеста);
CLI_GreenAPI_УдалитьУведомлениеИзОчереди(ПараметрыТеста);
CLI_GreenAPI_СкачатьФайлСообщения(ПараметрыТеста);
CLI_GreenAPI_УстановитьОтметкуПрочтения(ПараметрыТеста);
КонецПроцедуры
#КонецОбласти
#КонецОбласти
@@ -21365,6 +21381,131 @@
КонецПроцедуры
Процедура CLI_GreenAPI_ПолучитьУведомление(ПараметрыФункции)
ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
Опции = Новый Структура;
Опции.Вставить("api" , ApiUrl);
Опции.Вставить("media", MediaUrl);
Опции.Вставить("id" , IdInstance);
Опции.Вставить("token", ApiTokenInstance);
ПараметрыДоступа = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "СформироватьПараметрыДоступа", Опции);
Опции = Новый Структура;
Опции.Вставить("access" , ПараметрыДоступа);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "ПолучитьУведомление", Опции);
JSON = OPI_Инструменты.JSONСтрокой(Результат);
JSON = СтрЗаменить(JSON, ПараметрыФункции["GreenAPI_AccountID"], "1234567890@c.us");
Результат = OPI_Инструменты.JsonВСтруктуру(JSON, Истина);
OPI_ПолучениеДанныхТестов.ЗаписатьЛогCLI(Результат, "ПолучитьУведомление", "GreenAPI");
OPI_ПолучениеДанныхТестов.Проверка_ГринУведомление(Результат);
IDУведомления = Результат["receiptId"];
OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("GreenAPI_ReceiptID", IDУведомления);
OPI_Инструменты.ДобавитьПоле("GreenAPI_ReceiptID", IDУведомления, "Строка", ПараметрыФункции);
КонецПроцедуры
Процедура CLI_GreenAPI_УдалитьУведомлениеИзОчереди(ПараметрыФункции)
ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
IDДоставки = ПараметрыФункции["GreenAPI_ReceiptID"];
Опции = Новый Структура;
Опции.Вставить("api" , ApiUrl);
Опции.Вставить("media", MediaUrl);
Опции.Вставить("id" , IdInstance);
Опции.Вставить("token", ApiTokenInstance);
ПараметрыДоступа = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "СформироватьПараметрыДоступа", Опции);
Опции = Новый Структура;
Опции.Вставить("access" , ПараметрыДоступа);
Опции.Вставить("receipt", IDДоставки);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "УдалитьУведомлениеИзОчереди", Опции);
OPI_ПолучениеДанныхТестов.ЗаписатьЛогCLI(Результат, "УдалитьУведомлениеИзОчереди", "GreenAPI");
OPI_ПолучениеДанныхТестов.Проверка_РезультатИстина(Результат);
КонецПроцедуры
Процедура CLI_GreenAPI_СкачатьФайлСообщения(ПараметрыФункции)
ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
IDЧата = ПараметрыФункции["GreenAPI_TestGroupID"];
IDСообщения = ПараметрыФункции["GreenAPI_DownloadMessageID"];
Опции = Новый Структура;
Опции.Вставить("api" , ApiUrl);
Опции.Вставить("media", MediaUrl);
Опции.Вставить("id" , IdInstance);
Опции.Вставить("token", ApiTokenInstance);
ПараметрыДоступа = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "СформироватьПараметрыДоступа", Опции);
Опции = Новый Структура;
Опции.Вставить("access" , ПараметрыДоступа);
Опции.Вставить("chat" , IDЧата);
Опции.Вставить("message", IDСообщения);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "СкачатьФайлСообщения", Опции);
OPI_ПолучениеДанныхТестов.ЗаписатьЛогCLI(Результат, "СкачатьФайлСообщения", "GreenAPI");
OPI_ПолучениеДанныхТестов.Проверка_ГринВходнойФайл(Результат);
КонецПроцедуры
Процедура CLI_GreenAPI_УстановитьОтметкуПрочтения(ПараметрыФункции)
ApiUrl = ПараметрыФункции["GreenAPI_ApiURL"];
MediaUrl = ПараметрыФункции["GreenAPI_MediaURL"];
IdInstance = ПараметрыФункции["GreenAPI_IdInstance"];
ApiTokenInstance = ПараметрыФункции["GreenAPI_Token"];
IDЧата = ПараметрыФункции["GreenAPI_TestGroupID"];
IDСообщения = ПараметрыФункции["GreenAPI_DownloadMessageID"];
Опции = Новый Структура;
Опции.Вставить("api" , ApiUrl);
Опции.Вставить("media", MediaUrl);
Опции.Вставить("id" , IdInstance);
Опции.Вставить("token", ApiTokenInstance);
ПараметрыДоступа = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "СформироватьПараметрыДоступа", Опции);
Опции = Новый Структура;
Опции.Вставить("access" , ПараметрыДоступа);
Опции.Вставить("chat" , IDЧата);
Опции.Вставить("message", IDСообщения);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("greenapi", "УстановитьОтметкуПрочтения", Опции);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛогCLI(Результат, "УстановитьОтметкуПрочтения", "GreenAPI");
OPI_ПолучениеДанныхТестов.Проверка_ГринПрочтение(Результат);
КонецПроцедуры
#КонецОбласти
#КонецОбласти