Я попытался добавить новый тип контента в список с помощью MS Graph Explorer:
Запрос:
POST https://graph.microsoft.com/v1.0/sites/{site-id}/lists/{list-id}/contenttypes
с телом:
{
"description": "MyCustomContentType's description",
"group": "List Content Types",
"hidden": false,
"id": "0x010300B8123BA6FE3D6045BF4F6DF992B6ABE7",
"name": "MyCustomContentType",
"parentId": "0x0103",
"readOnly": false,
"sealed": false
}
Ответ:
{
"error": {
"code": "itemNotFound",
"message": "The specified site content type was not found",
"innerError": {
"request-id": "1ac12fed-eaf3-4d03-a3c4-b44ddacada72",
"date": "2020-05-16T17:12:11"
}
}
}
Также попробовал это с Graph API sdk в коде Java:
IGraphServiceClient graphClient = GraphServiceClient.builder()
.authenticationProvider(authenticationProvider)
.buildClient();
ContentType contentType = new ContentType();
contentType.name = "MyCustomContentType";
contentType.description = "MyCustomContentType's description";
contentType.group = "List Content Types";
contentType.hidden = false;
contentType.parentId = "0x0103";
contentType.id = "0x010300B8123BA6FE3D6045BF4F6DF992B6ABE7";
contentType.readOnly = false;
contentType.sealed = false;
contentType = graphClient.sites(siteId)
.lists(listId)
.contentTypes()
.buildRequest()
.post(contentType);
результат тот же...
Также я попытался добавить тип контента в список с помощью REST API, но столкнулся с другой проблемой: тип контента создается, но игнорирует переданный идентификатор и всегда наследуется от типа контента Item. Та же проблема описана здесь: Как для создания типа контента сайта с идентификатором с помощью REST API. Похоже на ошибку REST API.
Можно ли создать тип контента в SharePoint с помощью MS Graph или REST API? Может быть, есть другие способы создать его с помощью Java?
Спасибо!