mirror of
https://github.com/Bayselonarrend/OpenIntegrations.git
synced 2025-03-25 21:39:21 +02:00
Начал работать над Notion API
This commit is contained in:
parent
25517669af
commit
0d868aafaa
100
OPI/src/CommonModules/OPI_Notion/Module.bsl
Normal file
100
OPI/src/CommonModules/OPI_Notion/Module.bsl
Normal file
@ -0,0 +1,100 @@
|
||||
#Область ПрограммныйИнтерфейс
|
||||
|
||||
#Область РаботаСоСтраницами
|
||||
|
||||
// Создать дочернюю страницу
|
||||
//
|
||||
// Параметры:
|
||||
// Токен - Строка - Токен
|
||||
// Заголовок - Строка - Заголовок страницы
|
||||
// Родитель - Строка - ID Родителя
|
||||
// РодительБаза - Булево - Истина, если родитель - база, Ложь - если страница
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Строка, Произвольный, HTTPОтвет, ДвоичныеДанные, Неопределено - Ответ сервера Notion
|
||||
Функция СоздатьСтраницу(Знач Токен, Знач Заголовок, Знач Родитель, Знач РодительБаза = Ложь) Экспорт
|
||||
|
||||
Заголовки = СоздатьЗаголовкиЗапроса(Токен);
|
||||
Родитель = ИдентификацияРодителя(Родитель, РодительБаза);
|
||||
Свойства = Новый Структура;
|
||||
|
||||
ДобавитьЗаголовокСтраницы(Заголовок, Свойства);
|
||||
|
||||
Параметры = Новый Структура;
|
||||
Параметры.Вставить("parent" , Родитель);
|
||||
Параметры.Вставить("properties", Свойства);
|
||||
|
||||
Ответ = OPI_Инструменты.Post("https://api.notion.com/v1/pages", Параметры, Заголовки);
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
Функция СоздатьЗаголовкиЗапроса(Знач Токен)
|
||||
|
||||
Заголовки = Новый Соответствие;
|
||||
Заголовки.Вставить("Authorization" , "Bearer " + Токен);
|
||||
Заголовки.Вставить("Notion-Version", "2022-06-28");
|
||||
|
||||
Возврат Заголовки;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ПреобразоватьИД(Идентификатор)
|
||||
|
||||
Если СтрНайти(Идентификатор, "-" = 0) Тогда
|
||||
|
||||
МассивЧастей = Новый Массив;
|
||||
МассивЧастей.Добавить(Лев(Идентификатор , 8));
|
||||
МассивЧастей.Добавить(Сред(Идентификатор , 9 , 4));
|
||||
МассивЧастей.Добавить(Сред(Идентификатор , 12, 4));
|
||||
МассивЧастей.Добавить(Сред(Идентификатор , 15, 4));
|
||||
МассивЧастей.Добавить(Прав(Идентификатор , 12));
|
||||
|
||||
Идентификатор = СтрСоединить(МассивЧастей, "-");
|
||||
|
||||
КонецЕсли
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ИдентификацияРодителя(Знач Родитель, Знач РодительБаза)
|
||||
|
||||
ПреобразоватьИД(Родитель);
|
||||
|
||||
ПолеИдентификатора = ?(РодительБаза, "database_id", "page_id");
|
||||
СтруктураРодителя = Новый Структура(ПолеИдентификатора, Родитель);
|
||||
|
||||
Возврат СтруктураРодителя;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ДобавитьЗаголовокСтраницы(Знач Заголовок, ОсновнаяСтруктура)
|
||||
|
||||
ПодчиненнаяСтруктура = Новый Структура;
|
||||
СтруктураДанных = Новый Структура;
|
||||
СтруктураТекста = Новый Структура;
|
||||
МассивДанных = Новый Массив;
|
||||
|
||||
СтруктураТекста.Вставить("content", Заголовок);
|
||||
СтруктураТекста.Вставить("link" , Неопределено);
|
||||
|
||||
СтруктураДанных.Вставить("text", СтруктураТекста);
|
||||
СтруктураДанных.Вставить("type", "text");
|
||||
|
||||
МассивДанных.Добавить(СтруктураДанных);
|
||||
|
||||
ПодчиненнаяСтруктура.Вставить("id" , "title");
|
||||
ПодчиненнаяСтруктура.Вставить("type" , "title");
|
||||
ПодчиненнаяСтруктура.Вставить("title", МассивДанных);
|
||||
|
||||
ОсновнаяСтруктура.Вставить("title", ПодчиненнаяСтруктура);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
11
OPI/src/CommonModules/OPI_Notion/OPI_Notion.mdo
Normal file
11
OPI/src/CommonModules/OPI_Notion/OPI_Notion.mdo
Normal file
@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="1bef723b-a2a4-4547-b29f-63cf9c78d813">
|
||||
<name>OPI_Notion</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Методы работы с Notion (ОПИ)</value>
|
||||
</synonym>
|
||||
<server>true</server>
|
||||
<externalConnection>true</externalConnection>
|
||||
<clientOrdinaryApplication>true</clientOrdinaryApplication>
|
||||
</mdclass:CommonModule>
|
@ -3,7 +3,7 @@
|
||||
<name>OPI_Twitter</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>OPI twitter</value>
|
||||
<value>Методы работы с Twitter (ОПИ)</value>
|
||||
</synonym>
|
||||
<server>true</server>
|
||||
<externalConnection>true</externalConnection>
|
||||
|
@ -55,5 +55,6 @@
|
||||
<commonModules>CommonModule.OPI_VK</commonModules>
|
||||
<commonModules>CommonModule.OPI_Viber</commonModules>
|
||||
<commonModules>CommonModule.OPI_Twitter</commonModules>
|
||||
<commonModules>CommonModule.OPI_Notion</commonModules>
|
||||
<commonModules>CommonModule.OPI_Криптография</commonModules>
|
||||
</mdclass:Configuration>
|
||||
|
Loading…
x
Reference in New Issue
Block a user