IntraVision

IntraDesk API. Получение списка статей базы знаний

Каждый запрос к IntraDesk API должен содержать токен авторизации в заголовке authorization, см. Статья №1229

GET https://apigw.intradesk.ru/knowledgebase/odata/kb

Headers:
content-type: application/json
authorization: Bearer {указываем_токен_доступа}

Параметры запроса:
?$skip=0&$orderby= updatedat%20desc&$top=30&$filter={параметры фильтрации}&$count=true&searchStringMode=none
$skip - количество записей, которое нужно пропустить, используется для постраничного листания
$top - количество компаний, которое нужно вернуть, используется для постраничного листания
$orderby - название поля для сортировки в списке
$filter - используется для фильтрации списка. Подробнее ниже в Фильтрация списка
$count - true - будет подсчитано количество статей, удовлетворяющих запросу
searchStringMode - поиск по текстовым полям статьи: названии, тексте статьи, названиях файлов, содержимом файлов. none - без поиска, fast - поиск по не точному совпадению, по основе слова; slow - поиск по точному совпадению

Фильтрация списка
- поиск по текстовым полям (вместе с параметром searchStringMode)
$filter:(contains('_term','автомат))

Теги
-содержит любое из: $filter=((tags/any(s: s eq {tagid_1})) or (tags/any(s: s eq {tagid_2})) or... or (tags/any(s: s eq {tagid_N})))

Автор статьи
- один из: $filter=((createdid eq{userid_1}) or (createdid eq{userid_2}) or ... or (createdid eq{userid_N}))

Пользователь, который изменил статью
- один из: $filter=((updatedid eq{userid_1}) or (updatedid eq{userid_2}) or ... or (updatedid eq{userid_N}))

Опубликована:
да: $filter=(isStatus eq true)4
нет: $filter=(isStatus eq false)

Сервисы:
один из: (servicepath/any(s: s/id eq '{servicepath}'))
где {servicepath} - путь сервиса

Даты, примеры условий
- между: (({datefield} ge cast('{2019-11-01T21:00:00.000Z}', Edm.DateTimeOffset)) and ({datefield} le cast('{2019-12-01T21:00:00.000Z}', Edm.DateTimeOffset)))
- равно - (({datefield} ge cast('{2019-12-01T21:00:00.000Z}', Edm.DateTimeOffset))
- меньше или равно: ({datefield} le cast('2021-04-13T20:59:59.999Z', Edm.DateTimeOffset))
- больше или равно: ({datefield} ge cast('2021-04-12T21:00:00.000Z', Edm.DateTimeOffset))
Дата создания: {datefield}= createdat
Дата изменения: {datefield}= updatedat
даты нужно указывать в формате iso - 2019-12-01T21:00:00.000Z

Response:
Пример ответа:
{
"@odata.count": 1,
"value": [
{
"id": 5414, 
"name": "test",
"descriptionshort": "<br><div><div style=\"line-height: .5;\" contenteditable=\"false\">&nbsp;</div><intradesk_imag ...",          
 "createdat": "2021-04-15T14:25:02.6780000Z",           
"createdby": "Назаренко Ольга Андреевна",           
"createdid": 957,          
 "updatedat": "2021-04-15T14:25:03.6264798Z",           
"updatedby": "Назаренко Ольга Андреевна",           
updatedid": 957,           
"files": "[{\"id\":\"60784c43e66e7400016c3cff\",\"entityType\":\"kb\",\"entityId\":0,\"name\":\"Проверка_парса.docx\",\"contentType\":\"application/vnd.openxmlformats-officedocument.wordprocessingml.document\",\"size\":11810,\"target\":20,\"uploadedAt\":\"2021-04-15T14:22:59.589Z\",\"uploadedBy\":\"Назаренко Ольга Андреевна\",\"isNew\":true,\"isDeleted\":false}]",           
"services": [78932, 222],
 "tags": [188],           
"rights": 40,           
"usergroups": [119649, 353],           
"status": 10,           
"rigthsassignmentfromservice": false,          
 "_searchhighlights": null,           
"isstatus": false,           
"weight": 0,          
 "isarchived": false
 }
],
"searchresult":null,
"dictionaries":[
{"id":188,"name":"Инцидент","type":"tags"},
{"id":119649,"name":"Группа Назаренко","type":"usergroup"},
{"id":353,"name":"Клиент МТС","type":"usergroup"}
],
"services":[
{"id":78932,"name":"Сервис обслуживания","path":"78932/"},
{"id":222,"name":"Сервис бухгалтерии","path":"222/"}
]
}
Описание ответа:
"value" - массив статей (описание ниже в разделе Формат данных статьи)
"@odata.count" – общее количество найденных статей (игнорируя страницы с skip и top)
"searchresult" - массив, вспомогательная информация о найденных поиском результатов
"dictionaries" - массив, справочная информация (названия) по тегам, компаниям и группами, которые  пришли в основном ответе value в полях tags и usergroups (описание формата ниже в Формат dictionaries)
"services" - массив, справочная информация (названия и пути) по сервисам, пришедшим в основном ответе value в поле services (описание формата ниже в Формат services)

Формат данных статьи

"id" - число, идентификатор статьи
"name" - строка, название статьи
"descriptionshort": строка, описание статьи, первые 90 символов (теги html присутствуют). Как получить полное описание описано в Статья №4809
 "createdat" - дата, дата создания статьи          
"createdby" - строка, ФИО пользователя, создавшего статью         
"createdid" - число, идентификатор пользователя, создавшего статью
 "updatedat" - дата, дата последнего изменения статьи    
"updatedby" - строка, ФИО пользователя, последним изменившего статью   
updatedid" - число, идентификатор пользователя, последним изменившего статью         
"files" - строка. Строка содержит информацию о файлах, приложенных к статье в виде json (подробнее о формате json ниже в Формат файла статьи)
 "tags" - массив чисел, идентификаторы тегов
"rigthsassignmentfromservice" - булевый признак, правила видимости заданы от сервис (да\нет)
"services": массив чисел, идентификаторы сервисов при правах видимости для сервисов
"rights" - число, другие права видимости статьи (0 - нет доступа (если задан rigthsassignmentfromservice ), 10 - все, 20 - все клиенты, 30 - все сотрудники, 40 - только указанные группы)    
"usergroups" - массив чисел, список идентификаторов компаний и групп, которым видна статья. При выставлении прав доступа rights в положение "Только указанные группы"
"status" - число, статус статьи (10 - Черновик, 20 - Опубликована)
"weight" - число, рейтинг статьи      
 "isarchived" - булевый признак, удалена ли статья (заархивирована)

Формат файла статьи
"id" - строка, id файла
"Name" - строка, название файла
"Size" - число, размер файла
"Target" - 10 - файл использован в тексте описания, 20 - файл приложен к описанию

Формат dictionaries
"id" - число, идентификатор объекта
"name" - строка, название объекта
"type" - строка, тип объекта: "usergroup" - компания\группа, "tags"- тег

Формат services
"id" - число, идентификатор сервиса
"name" - строка, название сервиса
"path" - строка, путь сервиса
API
база знаний