1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2025-01-02 03:38:55 +02:00

B24: Отправка файла в чат

This commit is contained in:
Anton 2024-07-14 12:35:47 +03:00
parent 97f3995f29
commit 6459344e99
6 changed files with 4666 additions and 4410 deletions

File diff suppressed because it is too large Load Diff

View File

@ -2237,7 +2237,7 @@
СоответствиеФайла = Новый Соответствие;
СоответствиеФайла.Вставить(ИмяФайла, Файл);
Ответ = OPI_Инструменты.PostMultipart(URLЗагрузки, , СоответствиеФайла);
Ответ = OPI_Инструменты.PostMultipart(URLЗагрузки, , СоответствиеФайла, "");
КонецЕсли;
@ -3004,6 +3004,55 @@
КонецФункции
// Получить каталог файлов чата
// Получает каталог для хранения фйлов чата
//
// Примечание:
// Метод в документации API: [im.disk.folder.get](@dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=93&LESSON_ID=11483)
//
// Параметры:
// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
// IDЧата - Строка, Число - ID чата - chat
// Токен - Строка - Токен авторизации, если используется не вебхук - token
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
Функция ПолучитьКаталогФайловЧата(Знач URL, Знач IDЧата, Знач Токен = "") Экспорт
Ответ = УправлениеЧатом(URL, IDЧата, "im.disk.folder.get", Токен);
Возврат Ответ;
КонецФункции
// Отправить файл
// Отправляет файл диска в чат по ID
//
// Примечание:
// Метод в документации API: [im.disk.file.commit](@dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=93&LESSON_ID=11485)
//
// Параметры:
// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
// IDЧата - Строка, Число - ID чата - chat
// IDФайла - Строка, Число - ID файла, загруженного при помощи disk.folder.uploadfile - fileid
// Описание - Строка - Описание файла - description
// Токен - Строка - Токен авторизации, если используется не вебхук - token
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
Функция ОтправитьФайл(Знач URL, Знач IDЧата, Знач IDФайла, Знач Описание = "", Знач Токен = "") Экспорт
Параметры = НормализоватьАвторизацию(URL, Токен, "im.disk.file.commit");
OPI_Инструменты.ДобавитьПоле("CHAT_ID" , IDЧата , "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("UPLOAD_ID", IDФайла , "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("MESSAGE" , Описание, "Строка", Параметры);
Ответ = OPI_Инструменты.Post(URL, Параметры);
Возврат Ответ;
КонецФункции
// Получить структуру чата
// Получает структуру полей чата
//

View File

@ -1,21 +1,21 @@
<package-def>
<module name="OPI_Криптография" file="tools/Modules/internal/Modules/OPI_Криптография.os"/>
<module name="OPI_Инструменты" file="tools/Modules/internal/Modules/OPI_Инструменты.os"/>
<module name="OPI_GoogleDrive" file="core/Modules/OPI_GoogleDrive.os"/>
<module name="OPI_Twitter" file="core/Modules/OPI_Twitter.os"/>
<module name="OPI_YandexID" file="core/Modules/OPI_YandexID.os"/>
<module name="OPI_Dropbox" file="core/Modules/OPI_Dropbox.os"/>
<module name="OPI_GoogleWorkspace" file="core/Modules/OPI_GoogleWorkspace.os"/>
<module name="OPI_Bitrix24" file="core/Modules/OPI_Bitrix24.os"/>
<module name="OPI_Viber" file="core/Modules/OPI_Viber.os"/>
<module name="OPI_GoogleCalendar" file="core/Modules/OPI_GoogleCalendar.os"/>
<module name="OPI_Telegram" file="core/Modules/OPI_Telegram.os"/>
<module name="OPI_Airtable" file="core/Modules/OPI_Airtable.os"/>
<module name="OPI_Slack" file="core/Modules/OPI_Slack.os"/>
<module name="OPI_Notion" file="core/Modules/OPI_Notion.os"/>
<module name="OPI_Bitrix24" file="core/Modules/OPI_Bitrix24.os"/>
<module name="OPI_Dropbox" file="core/Modules/OPI_Dropbox.os"/>
<module name="OPI_GoogleCalendar" file="core/Modules/OPI_GoogleCalendar.os"/>
<module name="OPI_GoogleDrive" file="core/Modules/OPI_GoogleDrive.os"/>
<module name="OPI_GoogleSheets" file="core/Modules/OPI_GoogleSheets.os"/>
<module name="OPI_YandexDisk" file="core/Modules/OPI_YandexDisk.os"/>
<module name="OPI_ПреобразованиеТипов" file="tools/Modules/OPI_ПреобразованиеТипов.os"/>
<module name="OPI_GoogleWorkspace" file="core/Modules/OPI_GoogleWorkspace.os"/>
<module name="OPI_Notion" file="core/Modules/OPI_Notion.os"/>
<module name="OPI_Slack" file="core/Modules/OPI_Slack.os"/>
<module name="OPI_Telegram" file="core/Modules/OPI_Telegram.os"/>
<module name="OPI_Twitter" file="core/Modules/OPI_Twitter.os"/>
<module name="OPI_Viber" file="core/Modules/OPI_Viber.os"/>
<module name="OPI_VK" file="core/Modules/OPI_VK.os"/>
<module name="OPI_YandexDisk" file="core/Modules/OPI_YandexDisk.os"/>
<module name="OPI_YandexID" file="core/Modules/OPI_YandexID.os"/>
<module name="OPI_Инструменты" file="tools/Modules/internal/Modules/OPI_Инструменты.os"/>
<module name="OPI_Криптография" file="tools/Modules/internal/Modules/OPI_Криптография.os"/>
<module name="OPI_ПолучениеДанныхТестов" file="tools/Modules/OPI_ПолучениеДанныхТестов.os"/>
<module name="OPI_ПреобразованиеТипов" file="tools/Modules/OPI_ПреобразованиеТипов.os"/>
</package-def>

View File

@ -3104,6 +3104,7 @@
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Token" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture2" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Document" , ПараметрыТеста);
Bitrix24_СоздатьЧат(ПараметрыТеста);
Bitrix24_ПолучитьСписокПользователейЧата(ПараметрыТеста);
@ -3124,6 +3125,8 @@
Bitrix24_ИзменитьСообщение(ПараметрыТеста);
Bitrix24_УстановитьРеакциюНаСообщение(ПараметрыТеста);
Bitrix24_УдалитьСообщение(ПараметрыТеста);
Bitrix24_ПолучитьКаталогФайловЧата(ПараметрыТеста);
Bitrix24_ОтправитьФайл(ПараметрыТеста);
Bitrix24_ПрочитатьВсе(ПараметрыТеста);
Bitrix24_СменитьВладельцаЧата(ПараметрыТеста);
Bitrix24_ПокинутьЧат(ПараметрыТеста);
@ -3795,6 +3798,13 @@
КонецПроцедуры
Процедура Проверка_БитриксФайлСообщение(Знач Результат)
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"]).ИмеетТип("Соответствие");
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"]["MESSAGE_ID"]).Заполнено();
КонецПроцедуры
#КонецОбласти
#Область АтомарныеТесты
@ -9229,6 +9239,70 @@
КонецПроцедуры
Процедура Bitrix24_ПолучитьКаталогФайловЧата(ПараметрыФункции)
URL = ПараметрыФункции["Bitrix24_URL"];
IDЧата = ПараметрыФункции["Bitrix24_HookChatID"];
Результат = OPI_Bitrix24.ПолучитьКаталогФайловЧата(URL, IDЧата);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьКаталогФайловЧата (хук)", "Bitrix24");
Проверка_БитриксОбъект(Результат); // SKIP
URL = ПараметрыФункции["Bitrix24_Domain"];
Токен = ПараметрыФункции["Bitrix24_Token"];
IDЧата = ПараметрыФункции["Bitrix24_ChatID"];
Результат = OPI_Bitrix24.ПолучитьКаталогФайловЧата(URL, IDЧата, Токен);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьКаталогФайловЧата", "Bitrix24");
Проверка_БитриксОбъект(Результат);
КонецПроцедуры
Процедура Bitrix24_ОтправитьФайл(ПараметрыФункции)
URL = ПараметрыФункции["Bitrix24_URL"];
IDЧата = ПараметрыФункции["Bitrix24_HookChatID"];
Файл = ПараметрыФункции["Document"]; // Двоичные данные, URL или путь к файлу
Описание = "Очень важный файл";
Каталог = OPI_Bitrix24.ПолучитьКаталогФайловЧата(URL, IDЧата);
IDКаталога = Каталог["result"]["ID"];
ЗагруженныйФайл = OPI_Bitrix24.ЗагрузитьФайлВКаталог(URL, "Важный документ.docx", Файл, IDКаталога);
IDФайла = ЗагруженныйФайл["result"]["ID"];
Результат = OPI_Bitrix24.ОтправитьФайл(URL, IDЧата, IDФайла, Описание);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьФайл (хук)", "Bitrix24");
Проверка_БитриксФайлСообщение(Результат); // SKIP
URL = ПараметрыФункции["Bitrix24_Domain"];
Токен = ПараметрыФункции["Bitrix24_Token"];
IDЧата = ПараметрыФункции["Bitrix24_ChatID"];
Каталог = OPI_Bitrix24.ПолучитьКаталогФайловЧата(URL, IDЧата, Токен);
IDКаталога = Каталог["result"]["ID"];
ЗагруженныйФайл = OPI_Bitrix24.ЗагрузитьФайлВКаталог(URL, "Важный документ.docx", Файл, IDКаталога, Токен);
IDФайла = ЗагруженныйФайл["result"]["ID"];
Результат = OPI_Bitrix24.ОтправитьФайл(URL, IDЧата, IDФайла, Описание, Токен);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьФайл", "Bitrix24");
Проверка_БитриксФайлСообщение(Результат);
КонецПроцедуры
#КонецОбласти
#Область YandexDisk

View File

@ -2237,7 +2237,7 @@
СоответствиеФайла = Новый Соответствие;
СоответствиеФайла.Вставить(ИмяФайла, Файл);
Ответ = OPI_Инструменты.PostMultipart(URLЗагрузки, , СоответствиеФайла);
Ответ = OPI_Инструменты.PostMultipart(URLЗагрузки, , СоответствиеФайла, "");
КонецЕсли;
@ -3004,6 +3004,55 @@
КонецФункции
// Получить каталог файлов чата
// Получает каталог для хранения фйлов чата
//
// Примечание:
// Метод в документации API: [im.disk.folder.get](@dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=93&LESSON_ID=11483)
//
// Параметры:
// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
// IDЧата - Строка, Число - ID чата - chat
// Токен - Строка - Токен авторизации, если используется не вебхук - token
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
Функция ПолучитьКаталогФайловЧата(Знач URL, Знач IDЧата, Знач Токен = "") Экспорт
Ответ = УправлениеЧатом(URL, IDЧата, "im.disk.folder.get", Токен);
Возврат Ответ;
КонецФункции
// Отправить файл
// Отправляет файл диска в чат по ID
//
// Примечание:
// Метод в документации API: [im.disk.file.commit](@dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=93&LESSON_ID=11485)
//
// Параметры:
// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
// IDЧата - Строка, Число - ID чата - chat
// IDФайла - Строка, Число - ID файла, загруженного при помощи disk.folder.uploadfile - fileid
// Описание - Строка - Описание файла - description
// Токен - Строка - Токен авторизации, если используется не вебхук - token
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
Функция ОтправитьФайл(Знач URL, Знач IDЧата, Знач IDФайла, Знач Описание = "", Знач Токен = "") Экспорт
Параметры = НормализоватьАвторизацию(URL, Токен, "im.disk.file.commit");
OPI_Инструменты.ДобавитьПоле("CHAT_ID" , IDЧата , "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("UPLOAD_ID", IDФайла , "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("MESSAGE" , Описание, "Строка", Параметры);
Ответ = OPI_Инструменты.Post(URL, Параметры);
Возврат Ответ;
КонецФункции
// Получить структуру чата
// Получает структуру полей чата
//

View File

@ -3104,6 +3104,7 @@
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Bitrix24_Token" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture2" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Document" , ПараметрыТеста);
Bitrix24_СоздатьЧат(ПараметрыТеста);
Bitrix24_ПолучитьСписокПользователейЧата(ПараметрыТеста);
@ -3124,6 +3125,8 @@
Bitrix24_ИзменитьСообщение(ПараметрыТеста);
Bitrix24_УстановитьРеакциюНаСообщение(ПараметрыТеста);
Bitrix24_УдалитьСообщение(ПараметрыТеста);
Bitrix24_ПолучитьКаталогФайловЧата(ПараметрыТеста);
Bitrix24_ОтправитьФайл(ПараметрыТеста);
Bitrix24_ПрочитатьВсе(ПараметрыТеста);
Bitrix24_СменитьВладельцаЧата(ПараметрыТеста);
Bitrix24_ПокинутьЧат(ПараметрыТеста);
@ -3795,6 +3798,13 @@
КонецПроцедуры
Процедура Проверка_БитриксФайлСообщение(Знач Результат)
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"]).ИмеетТип("Соответствие");
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"]["MESSAGE_ID"]).Заполнено();
КонецПроцедуры
#КонецОбласти
#Область АтомарныеТесты
@ -9229,6 +9239,70 @@
КонецПроцедуры
Процедура Bitrix24_ПолучитьКаталогФайловЧата(ПараметрыФункции)
URL = ПараметрыФункции["Bitrix24_URL"];
IDЧата = ПараметрыФункции["Bitrix24_HookChatID"];
Результат = OPI_Bitrix24.ПолучитьКаталогФайловЧата(URL, IDЧата);
// !OInt OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьКаталогФайловЧата (хук)", "Bitrix24");
Проверка_БитриксОбъект(Результат); // SKIP
URL = ПараметрыФункции["Bitrix24_Domain"];
Токен = ПараметрыФункции["Bitrix24_Token"];
IDЧата = ПараметрыФункции["Bitrix24_ChatID"];
Результат = OPI_Bitrix24.ПолучитьКаталогФайловЧата(URL, IDЧата, Токен);
// END
// !OInt OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьКаталогФайловЧата", "Bitrix24");
Проверка_БитриксОбъект(Результат);
КонецПроцедуры
Процедура Bitrix24_ОтправитьФайл(ПараметрыФункции)
URL = ПараметрыФункции["Bitrix24_URL"];
IDЧата = ПараметрыФункции["Bitrix24_HookChatID"];
Файл = ПараметрыФункции["Document"]; // Двоичные данные, URL или путь к файлу
Описание = "Очень важный файл";
Каталог = OPI_Bitrix24.ПолучитьКаталогФайловЧата(URL, IDЧата);
IDКаталога = Каталог["result"]["ID"];
ЗагруженныйФайл = OPI_Bitrix24.ЗагрузитьФайлВКаталог(URL, "Важный документ.docx", Файл, IDКаталога);
IDФайла = ЗагруженныйФайл["result"]["ID"];
Результат = OPI_Bitrix24.ОтправитьФайл(URL, IDЧата, IDФайла, Описание);
// !OInt OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьФайл (хук)", "Bitrix24");
Проверка_БитриксФайлСообщение(Результат); // SKIP
URL = ПараметрыФункции["Bitrix24_Domain"];
Токен = ПараметрыФункции["Bitrix24_Token"];
IDЧата = ПараметрыФункции["Bitrix24_ChatID"];
Каталог = OPI_Bitrix24.ПолучитьКаталогФайловЧата(URL, IDЧата, Токен);
IDКаталога = Каталог["result"]["ID"];
ЗагруженныйФайл = OPI_Bitrix24.ЗагрузитьФайлВКаталог(URL, "Важный документ.docx", Файл, IDКаталога, Токен);
IDФайла = ЗагруженныйФайл["result"]["ID"];
Результат = OPI_Bitrix24.ОтправитьФайл(URL, IDЧата, IDФайла, Описание, Токен);
// END
// !OInt OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьФайл", "Bitrix24");
Проверка_БитриксФайлСообщение(Результат);
КонецПроцедуры
#КонецОбласти
#Область YandexDisk