mirror of
https://github.com/Bayselonarrend/OpenIntegrations.git
synced 2024-12-12 11:15:07 +02:00
Merge branch 'main' of https://github.com/Bayselonarrend/OpenIntegrations
This commit is contained in:
commit
b1c12c363c
@ -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"];
|
||||
|
||||
Если Не ЗначениеЗаполнено(СтатусОбработки) Тогда
|
||||
Возврат Ответ;
|
||||
Иначе
|
||||
Возврат СтатусОбработки;
|
||||
КонецЕсли;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
@ -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ВСтруктуру(Ответ.ПолучитьТелоКакДвоичныеДанные());
|
||||
|
@ -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Ответа, , Заголовки);
|
||||
|
||||
Возврат Ответ;
|
||||
|
@ -610,7 +610,7 @@
|
||||
|
||||
РазделительСтрок = Символы.ВК + Символы.ПС;
|
||||
|
||||
Если ТипЗнч(Файлы) = Тип("Соответствие") Тогда
|
||||
Если ТипЗнч(Файлы) = Тип("Соответствие") Тогда
|
||||
Для Каждого Файл Из Файлы Цикл
|
||||
|
||||
ЗаписьТекста.ЗаписатьСтроку("--" + boundary + РазделительСтрок);
|
||||
|
Loading…
Reference in New Issue
Block a user