mirror of
https://github.com/Bayselonarrend/OpenIntegrations.git
synced 2025-01-12 04:34:10 +02:00
Merge branch 'main' of https://github.com/Bayselonarrend/OpenIntegrations
This commit is contained in:
commit
333491c64a
4
.github/workflows/oint_test_VK.yml
vendored
4
.github/workflows/oint_test_VK.yml
vendored
@ -87,6 +87,10 @@ jobs:
|
|||||||
if: ${{ cancelled() }} == false
|
if: ${{ cancelled() }} == false
|
||||||
run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./OInt/tests/Modules/internal/OPI_Тесты.os "ВК_СоздатьУдалитьПост"
|
run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./OInt/tests/Modules/internal/OPI_Тесты.os "ВК_СоздатьУдалитьПост"
|
||||||
|
|
||||||
|
- name: Создать/Удалить составной пост
|
||||||
|
if: ${{ cancelled() }} == false
|
||||||
|
run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./OInt/tests/Modules/internal/OPI_Тесты.os "ВК_СоздатьСоставнойПост"
|
||||||
|
|
||||||
- name: Создать опрос
|
- name: Создать опрос
|
||||||
if: ${{ cancelled() }} == false
|
if: ${{ cancelled() }} == false
|
||||||
run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./OInt/tests/Modules/internal/OPI_Тесты.os "ВК_СоздатьОпрос"
|
run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./OInt/tests/Modules/internal/OPI_Тесты.os "ВК_СоздатьОпрос"
|
||||||
|
4
.github/workflows/oint_test_full.yml
vendored
4
.github/workflows/oint_test_full.yml
vendored
@ -213,6 +213,10 @@ jobs:
|
|||||||
if: ${{ cancelled() }} == false
|
if: ${{ cancelled() }} == false
|
||||||
run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./OInt/tests/Modules/internal/OPI_Тесты.os "ВК_СоздатьУдалитьПост"
|
run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./OInt/tests/Modules/internal/OPI_Тесты.os "ВК_СоздатьУдалитьПост"
|
||||||
|
|
||||||
|
- name: Создать/Удалить составной пост
|
||||||
|
if: ${{ cancelled() }} == false
|
||||||
|
run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./OInt/tests/Modules/internal/OPI_Тесты.os "ВК_СоздатьСоставнойПост"
|
||||||
|
|
||||||
- name: Создать опрос
|
- name: Создать опрос
|
||||||
if: ${{ cancelled() }} == false
|
if: ${{ cancelled() }} == false
|
||||||
run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./OInt/tests/Modules/internal/OPI_Тесты.os "ВК_СоздатьОпрос"
|
run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./OInt/tests/Modules/internal/OPI_Тесты.os "ВК_СоздатьОпрос"
|
||||||
|
@ -74,7 +74,7 @@
|
|||||||
// Параметры:
|
// Параметры:
|
||||||
// Текст - Строка - Текст поста - text
|
// Текст - Строка - Текст поста - text
|
||||||
// МассивКартинок - Массив из Строка,ДвоичныеДанные - Массив картинок - pictures
|
// МассивКартинок - Массив из Строка,ДвоичныеДанные - Массив картинок - pictures
|
||||||
// Рекламный - Булево - Признак ""Это реклама"" - ad
|
// Реклама - Булево - Признак ""Это реклама"" - ad
|
||||||
// СсылкаПодЗаписью - Строка - Ссылка (URL) под записью - url
|
// СсылкаПодЗаписью - Строка - Ссылка (URL) под записью - url
|
||||||
// Параметры - Структура из Строка - См.ПолучитьСтандартныеПараметры - auth - JSON авторизации или путь к .json
|
// Параметры - Структура из Строка - См.ПолучитьСтандартныеПараметры - auth - JSON авторизации или путь к .json
|
||||||
//
|
//
|
||||||
@ -82,17 +82,14 @@
|
|||||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
|
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
|
||||||
Функция СоздатьПост(Знач Текст
|
Функция СоздатьПост(Знач Текст
|
||||||
, Знач МассивКартинок
|
, Знач МассивКартинок
|
||||||
, Знач Рекламный = Ложь
|
, Знач Реклама = Ложь
|
||||||
, Знач СсылкаПодЗаписью = ""
|
, Знач СсылкаПодЗаписью = ""
|
||||||
, Знач Параметры = "") Экспорт
|
, Знач Параметры = "") Экспорт
|
||||||
|
|
||||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Текст);
|
|
||||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(СсылкаПодЗаписью);
|
|
||||||
OPI_ПреобразованиеТипов.ПолучитьКоллекцию(МассивКартинок);
|
OPI_ПреобразованиеТипов.ПолучитьКоллекцию(МассивКартинок);
|
||||||
OPI_ПреобразованиеТипов.ПолучитьБулево(Рекламный);
|
|
||||||
|
|
||||||
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
|
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
|
||||||
СтрокаВложений = "";
|
МассивВложений = Новый Массив;
|
||||||
|
|
||||||
Для Каждого КартинкаПоста Из МассивКартинок Цикл
|
Для Каждого КартинкаПоста Из МассивКартинок Цикл
|
||||||
|
|
||||||
@ -106,28 +103,58 @@
|
|||||||
Возврат ОтветСоответствие;
|
Возврат ОтветСоответствие;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ФотоID = "photo"
|
OwnerId = OPI_Инструменты.ЧислоВСтроку(OwnerId);
|
||||||
+ OPI_Инструменты.ЧислоВСтроку(OwnerId)
|
ObjectId = OPI_Инструменты.ЧислоВСтроку(ObjectId);
|
||||||
+ "_"
|
|
||||||
+ OPI_Инструменты.ЧислоВСтроку(ObjectId);
|
ФотоID = "photo" + OwnerId + "_" + ObjectId;
|
||||||
|
|
||||||
СтрокаВложений = СтрокаВложений + ФотоID + ",";
|
МассивВложений.Добавить(ФотоID);
|
||||||
|
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|
||||||
СтрокаВложений = СтрокаВложений + СсылкаПодЗаписью;
|
Ответ = СоздатьСоставнойПост(Текст, МассивВложений, Реклама, СсылкаПодЗаписью, Параметры);
|
||||||
|
|
||||||
Параметры_.Вставить("message" , Текст);
|
|
||||||
Параметры_.Вставить("attachments" , СтрокаВложений);
|
|
||||||
Параметры_.Вставить("mark_as_ads" , ?(Рекламный, 1, 0));
|
|
||||||
Параметры_.Вставить("close_comments" , ?(Рекламный, 1, 0));
|
|
||||||
|
|
||||||
Ответ = OPI_Инструменты.Get("api.vk.com/method/wall.post", Параметры_);
|
|
||||||
|
|
||||||
Возврат Ответ;
|
Возврат Ответ;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
// Создать составной пост
|
||||||
|
// Создает пост на основе массива идетификаторов объектов (картинок, видео и др.)
|
||||||
|
//
|
||||||
|
// Параметры:
|
||||||
|
// Текст - Строка - Текст поста - text
|
||||||
|
// Объекты - Массив из Строка - Массив идентификаторов вида photo123_123 - objects
|
||||||
|
// Реклама - Булево - Признак ""Это реклама"" - ad
|
||||||
|
// СсылкаПодЗаписью - Строка - Ссылка (URL) под записью - url
|
||||||
|
// Параметры - Структура из Строка - См.ПолучитьСтандартныеПараметры - auth - JSON авторизации или путь к .json
|
||||||
|
//
|
||||||
|
// Возвращаемое значение:
|
||||||
|
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
|
||||||
|
Функция СоздатьСоставнойПост(Знач Текст
|
||||||
|
, Знач Объекты
|
||||||
|
, Знач Реклама = Ложь
|
||||||
|
, Знач СсылкаПодЗаписью = ""
|
||||||
|
, Знач Параметры = "") Экспорт
|
||||||
|
|
||||||
|
OPI_ПреобразованиеТипов.ПолучитьСтроку(Текст);
|
||||||
|
OPI_ПреобразованиеТипов.ПолучитьСтроку(СсылкаПодЗаписью);
|
||||||
|
OPI_ПреобразованиеТипов.ПолучитьБулево(Реклама);
|
||||||
|
|
||||||
|
Параметры = ПолучитьСтандартныеПараметры(Параметры);
|
||||||
|
СтрокаВложений = СтрСоединить(Объекты, ",");
|
||||||
|
СтрокаВложений = СтрокаВложений + СсылкаПодЗаписью;
|
||||||
|
|
||||||
|
Параметры.Вставить("message" , Текст);
|
||||||
|
Параметры.Вставить("attachments" , СтрокаВложений);
|
||||||
|
Параметры.Вставить("mark_as_ads" , ?(Реклама, 1, 0));
|
||||||
|
Параметры.Вставить("close_comments" , ?(Реклама, 1, 0));
|
||||||
|
|
||||||
|
Ответ = OPI_Инструменты.Get("api.vk.com/method/wall.post", Параметры);
|
||||||
|
|
||||||
|
Возврат Ответ;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
// Удалить пост
|
// Удалить пост
|
||||||
// Удаляет пост по id
|
// Удаляет пост по id
|
||||||
//
|
//
|
||||||
@ -346,8 +373,8 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
// Загрузить видео
|
// Загрузить видео на сервер
|
||||||
// Загружает видео в группу
|
// Загружает видео в группу с возможностью его дальнейшего использования
|
||||||
//
|
//
|
||||||
// Параметры:
|
// Параметры:
|
||||||
// Видео - Строка, ДвоичныеДанные - Файл видео - file
|
// Видео - Строка, ДвоичныеДанные - Файл видео - file
|
||||||
@ -358,7 +385,11 @@
|
|||||||
//
|
//
|
||||||
// Возвращаемое значение:
|
// Возвращаемое значение:
|
||||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
|
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
|
||||||
Функция ЗагрузитьВидео(Знач Видео, Знач Наименование, Знач Описание = "", Знач Альбом = "", Знач Параметры = "") Экспорт
|
Функция ЗагрузитьВидеоНаСервер(Знач Видео
|
||||||
|
, Знач Наименование
|
||||||
|
, Знач Описание = ""
|
||||||
|
, Знач Альбом = ""
|
||||||
|
, Знач Параметры = "") Экспорт
|
||||||
|
|
||||||
Параметры = ПолучитьСтандартныеПараметры(Параметры);
|
Параметры = ПолучитьСтандартныеПараметры(Параметры);
|
||||||
|
|
||||||
@ -392,6 +423,74 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
// Загрузить фото на сервер
|
||||||
|
// Загружает фото на сервер для его дальнейшего использования
|
||||||
|
//
|
||||||
|
// Параметры:
|
||||||
|
// Картинка - Строка, ДвоичныеДанные - Файл картинки - file
|
||||||
|
// Параметры - Структура из Строка - См.ПолучитьСтандартныеПараметры - auth - JSON авторизации или путь к .json
|
||||||
|
// Вид - Строка - Вид загрузки (Пост, Товар, История, Опрос, Прочее) - type
|
||||||
|
//
|
||||||
|
// Возвращаемое значение:
|
||||||
|
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от VK
|
||||||
|
Функция ЗагрузитьФотоНаСервер(Знач Картинка, Знач Параметры = "", Знач Вид = "Пост") Экспорт
|
||||||
|
|
||||||
|
Параметры = ПолучитьСтандартныеПараметры(Параметры);
|
||||||
|
Метод = ОпределитьМетодЗагрузкиИзображений(Вид);
|
||||||
|
Файлы = Новый Соответствие;
|
||||||
|
|
||||||
|
Response = "response";
|
||||||
|
URL = "api.vk.com/method/";
|
||||||
|
Загрузка = URL + Метод["Загрузка"];
|
||||||
|
Сохранение = URL + Метод["Сохранение"];
|
||||||
|
|
||||||
|
Если ТипЗнч(Картинка) = Тип("Строка") Тогда
|
||||||
|
КлючКартинка = СтрЗаменить(Картинка, ".", "___");
|
||||||
|
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка);
|
||||||
|
Иначе
|
||||||
|
КлючКартинка = "image___jpeg";
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Файлы.Вставить(КлючКартинка, Картинка);
|
||||||
|
|
||||||
|
Для Н = 1 По 5 Цикл
|
||||||
|
|
||||||
|
Ответ = OPI_Инструменты.Get(Загрузка, Параметры);
|
||||||
|
Результат = Ответ[Response];
|
||||||
|
|
||||||
|
Если ЗначениеЗаполнено(Результат) Тогда
|
||||||
|
|
||||||
|
URL = Результат["upload_url"];
|
||||||
|
|
||||||
|
Если Не ЗначениеЗаполнено(URL) Тогда
|
||||||
|
Возврат Ответ;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Иначе
|
||||||
|
Возврат Ответ;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Параметры.Вставить("upload_url", URL);
|
||||||
|
Ответ = OPI_Инструменты.PostMultipart(URL, Параметры, Файлы);
|
||||||
|
|
||||||
|
Если ТипЗнч(Ответ) = Тип("Соответствие") Тогда
|
||||||
|
Прервать;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Если ТипЗнч(Ответ) <> Тип("Соответствие") Тогда
|
||||||
|
Возврат ПолучитьСтрокуИзДвоичныхДанных(Ответ);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ЗаполнитьПараметрыЗагрузкиФото(Метод, Ответ, Параметры);
|
||||||
|
|
||||||
|
Ответ = OPI_Инструменты.Get(Сохранение, Параметры);
|
||||||
|
|
||||||
|
Возврат Ответ;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
|
|
||||||
#Область РаботаСОбсуждениями
|
#Область РаботаСОбсуждениями
|
||||||
@ -1710,63 +1809,6 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
Функция ЗагрузитьФотоНаСервер(Знач Картинка, Знач Параметры, Знач Вид = "Пост")
|
|
||||||
|
|
||||||
Метод = ОпределитьМетодЗагрузкиИзображений(Вид);
|
|
||||||
Файлы = Новый Соответствие;
|
|
||||||
|
|
||||||
Response = "response";
|
|
||||||
URL = "api.vk.com/method/";
|
|
||||||
Загрузка = URL + Метод["Загрузка"];
|
|
||||||
Сохранение = URL + Метод["Сохранение"];
|
|
||||||
|
|
||||||
Если ТипЗнч(Картинка) = Тип("Строка") Тогда
|
|
||||||
КлючКартинка = СтрЗаменить(Картинка, ".", "___");
|
|
||||||
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка);
|
|
||||||
Иначе
|
|
||||||
КлючКартинка = "image___jpeg";
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
Файлы.Вставить(КлючКартинка, Картинка);
|
|
||||||
|
|
||||||
Для Н = 1 По 5 Цикл
|
|
||||||
|
|
||||||
Ответ = OPI_Инструменты.Get(Загрузка, Параметры);
|
|
||||||
Результат = Ответ[Response];
|
|
||||||
|
|
||||||
Если ЗначениеЗаполнено(Результат) Тогда
|
|
||||||
|
|
||||||
URL = Результат["upload_url"];
|
|
||||||
|
|
||||||
Если Не ЗначениеЗаполнено(URL) Тогда
|
|
||||||
Возврат Ответ;
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
Иначе
|
|
||||||
Возврат Ответ;
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
Параметры.Вставить("upload_url", URL);
|
|
||||||
Ответ = OPI_Инструменты.PostMultipart(URL, Параметры, Файлы);
|
|
||||||
|
|
||||||
Если ТипЗнч(Ответ) = Тип("Соответствие") Тогда
|
|
||||||
Прервать;
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
КонецЦикла;
|
|
||||||
|
|
||||||
Если ТипЗнч(Ответ) <> Тип("Соответствие") Тогда
|
|
||||||
Возврат ПолучитьСтрокуИзДвоичныхДанных(Ответ);
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
ЗаполнитьПараметрыЗагрузкиФото(Метод, Ответ, Параметры);
|
|
||||||
|
|
||||||
Ответ = OPI_Инструменты.Get(Сохранение, Параметры);
|
|
||||||
|
|
||||||
Возврат Ответ;
|
|
||||||
|
|
||||||
КонецФункции
|
|
||||||
|
|
||||||
Функция ОпределитьМетодЗагрузкиИзображений(Знач Вид)
|
Функция ОпределитьМетодЗагрузкиИзображений(Знач Вид)
|
||||||
|
|
||||||
СоответствиеМетодов = Новый Соответствие;
|
СоответствиеМетодов = Новый Соответствие;
|
||||||
|
@ -818,6 +818,32 @@
|
|||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Процедура ВК_СоздатьСоставнойПост() Экспорт
|
||||||
|
|
||||||
|
Response = "response";
|
||||||
|
Параметры = ПолучитьПараметрыВК();
|
||||||
|
Текст = "Пост из автотеста";
|
||||||
|
URL = "https://github.com/Bayselonarrend/OpenIntegrations";
|
||||||
|
Картинка = OPI_ПолучениеДанныхТестов.ПолучитьДвоичные("Picture");
|
||||||
|
Видео = OPI_ПолучениеДанныхТестов.ПолучитьДвоичные("Video");
|
||||||
|
|
||||||
|
ЗагрузкаКартинки = OPI_VK.ЗагрузитьФотоНаСервер(Картинка, Параметры)["response"][0];
|
||||||
|
ЗагрузкаВидео = OPI_VK.ЗагрузитьВидеоНаСервер(Видео, "Новое видео", , , Параметры);
|
||||||
|
|
||||||
|
ВладелецКартинки = OPI_Инструменты.ЧислоВСтроку(ЗагрузкаКартинки["owner_id"]);
|
||||||
|
ВладелецВидео = OPI_Инструменты.ЧислоВСтроку(ЗагрузкаВидео["owner_id"]);
|
||||||
|
|
||||||
|
IDКартинки = OPI_Инструменты.ЧислоВСтроку(ЗагрузкаКартинки["id"]);
|
||||||
|
IDВидео = OPI_Инструменты.ЧислоВСтроку(ЗагрузкаВидео["video_id"]);
|
||||||
|
|
||||||
|
МассивВложений = Новый Массив;
|
||||||
|
МассивВложений.Добавить("photo" + ВладелецКартинки + "_" + IDКартинки);
|
||||||
|
МассивВложений.Добавить("video" + ВладелецВидео + "_" + IDВидео);
|
||||||
|
|
||||||
|
Результат = OPI_VK.СоздатьСоставнойПост(Текст, МассивВложений, , , Параметры);
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
Процедура ВК_СоздатьОпрос() Экспорт
|
Процедура ВК_СоздатьОпрос() Экспорт
|
||||||
|
|
||||||
Параметры = ПолучитьПараметрыВК();
|
Параметры = ПолучитьПараметрыВК();
|
||||||
|
@ -109,6 +109,7 @@
|
|||||||
|
|
||||||
НовыйТест(ТаблицаТестов, "ВК_СоздатьСсылкуТокена" , "Создать ссылку получения токена", ВКонтакте);
|
НовыйТест(ТаблицаТестов, "ВК_СоздатьСсылкуТокена" , "Создать ссылку получения токена", ВКонтакте);
|
||||||
НовыйТест(ТаблицаТестов, "ВК_СоздатьУдалитьПост" , "Создать/Удалить пост" , ВКонтакте);
|
НовыйТест(ТаблицаТестов, "ВК_СоздатьУдалитьПост" , "Создать/Удалить пост" , ВКонтакте);
|
||||||
|
НовыйТест(ТаблицаТестов, "ВК_СоздатьСоставнойПост" , "Создать/Удалить составной пост" , ВКонтакте);
|
||||||
НовыйТест(ТаблицаТестов, "ВК_СоздатьОпрос" , "Создать опрос" , ВКонтакте);
|
НовыйТест(ТаблицаТестов, "ВК_СоздатьОпрос" , "Создать опрос" , ВКонтакте);
|
||||||
НовыйТест(ТаблицаТестов, "ВК_СохранитьУдалитьКартинку" , "Добавить/Удалить картинку" , ВКонтакте);
|
НовыйТест(ТаблицаТестов, "ВК_СохранитьУдалитьКартинку" , "Добавить/Удалить картинку" , ВКонтакте);
|
||||||
НовыйТест(ТаблицаТестов, "ВК_СоздатьИсторию" , "Создать историю" , ВКонтакте);
|
НовыйТест(ТаблицаТестов, "ВК_СоздатьИсторию" , "Создать историю" , ВКонтакте);
|
||||||
|
BIN
data.json.gpg
BIN
data.json.gpg
Binary file not shown.
Loading…
Reference in New Issue
Block a user