Могу ли я получить доступ к календарю Sharepoint с помощью Microsoft Graph? - PullRequest
0 голосов
/ 06 сентября 2018

Мне нужно извлечь события из общего календаря в SharePoint.

Используя Microsoft Graph, я нашел календарь:

https://graph.microsoft.com/v1.0/sites/company.sharepoint.com/lists/CALENDAR_ID

Включает массив списков. Я тогда попробовал:

https://graph.microsoft.com/v1.0/sites/company.sharepoint.com/lists/CALENDAR_ID/list

Что возвращает:

 [_decodedBody:Microsoft\Graph\Http\GraphResponse:private] => Array
    (
        [@odata.context] => https://graph.microsoft.com/v1.0/$metadata#sites('company.sharepoint.com')/lists('CALENDAR_ID')/list
        [contentTypesEnabled] => 1
        [hidden] => 
        [template] => events
    )

Нет событий в списке. Я также попытался / sites / {site-id} / lists / {list-id} / items , как показано в Справочные документы API Microsoft . Это не показывает события. Можно ли извлечь события таким образом?

Ответы [ 2 ]

0 голосов
/ 06 сентября 2018

Относительно

Нет событий в списке. Я также пытался / sites / {site-id} / lists / {list-id} / items, как показано в API Microsoft справочные документы. Это не показывает события

Скорее всего, это происходит, поскольку Разрешения уровня элемента включены для Календаря.

Как проверить

  • Перейти к настройкам календаря в пользовательском интерфейсе SharePoint: /_layouts/15/listedit.aspx?List={list-id}
  • в Advanced Settings проверить, выбран ли Read items that were created by the user

enter image description here

Если выбрана опция Read items that were created by the user, то конечная точка https://graph.microsoft.com/v1.0/sites/{site-id}/lists/{list-id}/items будет возвращать только события, созданные текущим пользователем


Чтобы вернуть все события, можно рассмотреть следующие варианты:

1) отключите Разрешения на уровне элементов для Календаря, установив для него значение Read all items

2) или использовать конечную точку API SharePoint для извлечения всех событий: https://server/_api/web/lists/getbyid('<list-id>')/items

В зависимости от разрешений пользователя может потребоваться включить Override List Behaviors уровень разрешений

enter image description here

в противном случае пользователи с ограниченными разрешениями не смогут получить все события

0 голосов
/ 06 сентября 2018

Во-первых, для вопроса вы упомянули " / sites / {site-id} / lists / {list-id} / items " Это доступно только в бета-версии Graph API, и да, не используйте его в рабочей версии вашего продукта.

enter image description here

https://.sharepoint.com/site//_api/web/lists/getbytitle('Calendar')/items

Пожалуйста, попробуйте приведенный выше код, чтобы получить элементы календаря.

...