1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2024-12-12 11:15:07 +02:00
This commit is contained in:
Anton Titovets 2024-04-02 17:26:14 +03:00
commit b1c12c363c
4 changed files with 97 additions and 65 deletions

View File

@ -60,8 +60,8 @@
ПараметрыURL.Вставить("code_challenge" , "challenge");
ПараметрыURL.Вставить("code_challenge_method", "plain");
Линк = "https://twitter.com/i/oauth2/authorize"
+ OPI_Инструменты.ПараметрыЗапросаВСтроку(ПараметрыURL);
ПараметрыURL = OPI_Инструменты.ПараметрыЗапросаВСтроку(ПараметрыURL);
Линк = "https://twitter.com/i/oauth2/authorize" + ПараметрыURL;
Возврат Линк;
@ -177,19 +177,8 @@
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
URL = "https://api.twitter.com/2/tweets";
Массив = "Массив";
Если Не ТипЗнч(МассивМедиа) = Тип(Массив) Тогда
МассивМедиа_ = Новый Массив;
Если ЗначениеЗаполнено(МассивМедиа) Тогда
МассивМедиа_.Добавить(МассивМедиа);
КонецЕсли;
МассивМедиа = МассивМедиа_;
КонецЕсли;
Поля = Новый Соответствие;
Массив = "Массив";
Поля = Новый Соответствие;
Если ЗначениеЗаполнено(Текст) Тогда
Поля.Вставить("text", Текст);
@ -200,9 +189,12 @@
ДлительностьОпроса = Число(ДлительностьОпроса);
Если МассивВариантовОпроса.Количество() > 0 Тогда
Поля.Вставить("poll"
, Новый Структура("options,duration_minutes", МассивВариантовОпроса, ДлительностьОпроса));
СтруктураВарианта = Новый Структура("options,duration_minutes", МассивВариантовОпроса, ДлительностьОпроса);
Поля.Вставить("poll", СтруктураВарианта);
КонецЕсли;
КонецЕсли;
Если ТипЗнч(МассивМедиа) = Тип(Массив) Тогда
@ -311,18 +303,12 @@
MIS = "media_id_string";
Если ЗначениеЗаполнено(МассивФайлов) Тогда
Если Не ТипЗнч(МассивФайлов) = Тип("Массив") Тогда
МассивФайлов_ = Новый Массив;
МассивФайлов_.Добавить(МассивФайлов);
МассивФайлов = МассивФайлов_;
КонецЕсли;
Для Каждого ФайлОтправки Из МассивФайлов Цикл
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(ФайлОтправки);
IDМедиа = ЗагрузитьМедиафайл(ФайлОтправки, ТипВложений, Параметры_)[MIS];
IDМедиа = ЗагрузитьМедиафайл(ФайлОтправки, ТипВложений, Параметры_)[MIS];
МассивМедиа.Добавить(IDМедиа);
КонецЦикла;
@ -343,7 +329,6 @@
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Файл);
ProcessingInfo = "processing_info";
MediaKey = "media_key";
MIS = "media_id_string";
Command = "command";
@ -386,6 +371,11 @@
ОтветИнициализации = OPI_Инструменты.Post(URL, Поля, Авторизация, Ложь);
KeyИнициализации = ОтветИнициализации[MediaKey];
IDИнициализации = ОтветИнициализации[MIS];
Если Не ЗначениеЗаполнено(KeyИнициализации) Или Не ЗначениеЗаполнено(IDИнициализации) Тогда
Возврат ОтветИнициализации;
КонецЕсли;
Счетчик = 0;
Для Каждого Часть Из МассивЧтения Цикл
@ -407,20 +397,24 @@
Поля.Вставить(Command , "FINALIZE");
Поля.Вставить("media_id", IDИнициализации);
Авторизация = СоздатьЗаголовокАвторизацииV1(Параметры_, Поля, ВидЗапроса, URL);
Ответ = OPI_Инструменты.Post(URL, Поля, Авторизация, Ложь);
СтатусОбработки = Ответ[ProcessingInfo]["state"];
Поля = Новый Структура;
СтатусОбработки = ПолучитьСтатусОбработки(Параметры_, Поля, URL, ВидЗапроса);
Если Не ТипЗнч(СтатусОбработки) = Тип("Строка") Тогда
Возврат СтатусОбработки;
КонецЕсли;
Поля = Новый Структура;
Поля.Вставить(Command , "STATUS");
Поля.Вставить("media_id", IDИнициализации);
Пока Строка(СтатусОбработки) = "pending" Или Строка(СтатусОбработки) = "in_progress" Цикл
Авторизация = СоздатьЗаголовокАвторизацииV1(Параметры_, Поля, "GET", URL);
Ответ = OPI_Инструменты.Get(URL, Поля, Авторизация);
СтатусОбработки = Ответ[ProcessingInfo]["state"];
СтатусОбработки = ПолучитьСтатусОбработки(Параметры_, Поля, URL, "GET");
Если Не ТипЗнч(СтатусОбработки) = Тип("Строка") Тогда
Возврат СтатусОбработки;
КонецЕсли
КонецЦикла;
@ -616,4 +610,31 @@
КонецФункции
Функция ПолучитьСтатусОбработки(Знач Параметры, Знач Поля, Знач URL, Знач ВидЗапроса)
ProcessingInfo = "processing_info";
Авторизация = СоздатьЗаголовокАвторизацииV1(Параметры, Поля, ВидЗапроса, URL);
Если ВидЗапроса = "GET" Тогда
Ответ = OPI_Инструменты.Get(URL, Поля, Авторизация);
Иначе
Ответ = OPI_Инструменты.Post(URL, Поля, Авторизация, Ложь);
КонецЕсли;
Информация = Ответ[ProcessingInfo];
Если Не ЗначениеЗаполнено(Информация) Тогда
Возврат Ответ;
КонецЕсли;
СтатусОбработки = Информация["state"];
Если Не ЗначениеЗаполнено(СтатусОбработки) Тогда
Возврат Ответ;
Иначе
Возврат СтатусОбработки;
КонецЕсли;
КонецФункции
#КонецОбласти

View File

@ -53,8 +53,7 @@
СтруктураПараметров.Вставить("url" , URL);
СтруктураПараметров.Вставить("auth_token", Токен);
Возврат OPI_Инструменты.Post("https://chatapi.viber.com/pa/set_webhook"
, СтруктураПараметров);
Возврат OPI_Инструменты.Post("https://chatapi.viber.com/pa/set_webhook", СтруктураПараметров);
КонецФункции
@ -120,18 +119,10 @@
Функция ПолучитьОнлайнПользователей(Знач Токен, Знач IDПользователей) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDПользователей);
OPI_ПреобразованиеТипов.ПолучитьКоллекцию(IDПользователей);
URL = "https://chatapi.viber.com/pa/get_online";
Если Не ТипЗнч(IDПользователей) = Тип("Массив") Тогда
ОдиночныйID = IDПользователей;
IDПользователей = Новый Массив;
IDПользователей.Добавить(ОдиночныйID);
КонецЕсли;
СтруктураПараметров = Новый Структура;
СтруктураПараметров.Вставить("ids", IDПользователей);
@ -215,13 +206,8 @@
Если Не ЗначениеЗаполнено(Размер) Тогда
Ответ = OPI_Инструменты.Get(URL);
ИВФ = ПолучитьИмяВременногоФайла(Расширение);
Ответ.Записать(ИВФ);
ВремФайл = Новый Файл(ИВФ);
Размер = ВремФайл.Размер();
УдалитьФайлы(ИВФ);
Ответ = OPI_Инструменты.Get(URL);
Размер = Ответ.Размер();
КонецЕсли;
@ -258,7 +244,7 @@
OPI_ПреобразованиеТипов.ПолучитьСтроку(НомерТелефона);
СтруктураКонтакта = Новый Структура;
СтруктураКонтакта.Вставить("name", ИмяКонтакта);
СтруктураКонтакта.Вставить("name" , ИмяКонтакта);
СтруктураКонтакта.Вставить("phone_number", НомерТелефона);
Возврат ОтправитьСообщение(Токен, "contact", IDПользователя, ОтправкаВКанал, СтруктураКонтакта);
@ -318,14 +304,13 @@
// Структура - Сформировать клавиатуру из массива кнопок:
// * Buttons - Массив из Структура - Массив сформированных кнопок
// * Type - Строка - Тип клавиатуры
Функция СформироватьКлавиатуруИзМассиваКнопок(Знач МассивКнопок, Знач ЦветКнопок = "") Экспорт
Функция СформироватьКлавиатуруИзМассиваКнопок(Знач МассивКнопок, Знач ЦветКнопок = "#2db9b9") Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(ЦветКнопок);
OPI_ПреобразованиеТипов.ПолучитьКоллекцию(МассивКнопок);
МассивСтруктурКнопок = Новый Массив;
СтруктураКлавиатуры = Новый Структура;
ЦветКнопок = ?(ЗначениеЗаполнено(ЦветКнопок), ЦветКнопок, "#2db9b9");
Для Каждого ТекстКнопки Из МассивКнопок Цикл
@ -419,9 +404,7 @@
URL = "https://chatapi.viber.com/pa/send_message";
КонецЕсли;
Ответ = OPI_Инструменты.Post(URL
, СтруктураПараметров
, ТокенВЗаголовки(Токен));
Ответ = OPI_Инструменты.Post(URL, СтруктураПараметров, ТокенВЗаголовки(Токен));
Попытка
Возврат OPI_Инструменты.JsonВСтруктуру(Ответ.ПолучитьТелоКакДвоичныеДанные());

View File

@ -77,8 +77,13 @@
Параметры = OPI_Инструменты.ПараметрыЗапросаВСтроку(Параметры);
Ответ = OPI_Инструменты.Put(URL + Параметры, , Заголовки, Ложь);
URLОтвета = Ответ[Href];
Ответ = OPI_Инструменты.Get(URLОтвета, , Заголовки);
URLОтвета = Ответ[Href];
Если Не ЗначениеЗаполнено(URLОтвета) Тогда
Возврат Ответ;
КонецЕсли;
Ответ = OPI_Инструменты.Get(URLОтвета, , Заголовки);
Возврат Ответ;
@ -163,8 +168,13 @@
Параметры = OPI_Инструменты.ПараметрыЗапросаВСтроку(Параметры);
Ответ = OPI_Инструменты.Post(URL + Параметры, , Заголовки, Ложь);
URLОтвета = Ответ[Href];
Ответ = OPI_Инструменты.Get(URLОтвета, , Заголовки);
URLОтвета = Ответ[Href];
Если Не ЗначениеЗаполнено(URLОтвета) Тогда
Возврат Ответ;
КонецЕсли;
Ответ = OPI_Инструменты.Get(URLОтвета, , Заголовки);
Возврат Ответ;
@ -278,7 +288,11 @@
Ответ = OPI_Инструменты.Post(URL + Параметры, , Заголовки, Ложь);
URLОтвета = Ответ[Href];
Ответ = OPI_Инструменты.Get(URLОтвета, , Заголовки);
Если Не ЗначениеЗаполнено(URLОтвета) Тогда
Возврат Ответ;
КонецЕсли;
Ответ = OPI_Инструменты.Get(URLОтвета, , Заголовки);
Возврат Ответ;
@ -311,6 +325,11 @@
Ответ = OPI_Инструменты.Get("https://cloud-api.yandex.net/v1/disk/resources/upload", Параметры, Заголовки);
URL = Ответ[Href];
Если Не ЗначениеЗаполнено(URL) Тогда
Возврат Ответ;
КонецЕсли;
Ответ = OPI_Инструменты.PutMultipart(URL, Новый Структура(), Файл, "multipart", Заголовки);
Возврат Ответ;
@ -511,7 +530,12 @@
Ответ = OPI_Инструменты.Post(Адрес + Параметры, , Заголовки, Ложь);
URLОтвета = Ответ[Href];
Ответ = OPI_Инструменты.Get(URLОтвета, , Заголовки);
Если Не ЗначениеЗаполнено(URLОтвета) Тогда
Возврат Ответ;
КонецЕсли;
Ответ = OPI_Инструменты.Get(URLОтвета, , Заголовки);
Возврат Ответ;
@ -552,6 +576,10 @@
URLОтвета = Ответ[Href];
Если Не ЗначениеЗаполнено(URLОтвета) Тогда
Возврат Ответ;
КонецЕсли;
Ответ = OPI_Инструменты.Get(URLОтвета, , Заголовки);
Возврат Ответ;

View File

@ -610,7 +610,7 @@
РазделительСтрок = Символы.ВК + Символы.ПС;
Если ТипЗнч(Файлы) = Тип("Соответствие") Тогда
Если ТипЗнч(Файлы) = Тип("Соответствие") Тогда
Для Каждого Файл Из Файлы Цикл
ЗаписьТекста.ЗаписатьСтроку("--" + boundary + РазделительСтрок);