Получить сайт Sharepoint Online с помощью C # Graph SDK - PullRequest
0 голосов
/ 17 января 2019

Я пытаюсь использовать Graph SDK для получения определенного сайта Sharepoint по URL, чтобы я мог читать и писать список, создавать библиотеки документов и добавлять документы в существующие библиотеки.

Это работает, чтобы получить рут:

var site = await graphClient.Sites[SPUrl].Request().GetAsync();

Это не работает, чтобы получить сайт, который я хочу:

    var site = await graphClient.Sites[SPUrl+"/segment1/segment2/site"].Request().GetAsync();

И это не работает, чтобы получить сайт по URL - он говорит мне, что "указанный путь не существует или не представляет сайт":

var siteByPath = await graphClient.Sites[SPUrl].SiteWithPath("/segment1/segement2/site").Request().GetAsync();

Но используя Graph Explorer, это работает: https://graph.microsoft.com/v1.0/sites/my.site.com:/sites/segment1/segment2/site?$select=id

Используя Graph Explorer, я определил, что каждый сегмент URL-адреса считается своим собственным сайтом, но у него не получилось - это ошибка «предоставлен неверный идентификатор - идентификатор недействителен»:

    var site = await graphClient.Sites[SPUrl].Sites["segment1"].Request().GetAsync();

Чего мне не хватает?

С помощью Sharepoint CSOM вы можете просто запросить сайт по его URL. Мое приложение сейчас находится в Azure и проходит проверку подлинности с помощью токенов OAuth, а не по имени пользователя и паролю, которые обрабатываются в приложении, поэтому я не уверен, что смогу пройти проверку подлинности через CSOM. Насколько я могу судить, мне нужно использовать Graph сейчас.

1 Ответ

0 голосов
/ 17 января 2019

Может показаться, что проблема в том, что если вы собираетесь запрашивать сайты под корнем сайта, вам нужно добавить «:» в исходную строку корневого сайта. Так "await graphClient.Sites [SPUrl] .Sites [" / сегмент1 / сегмент2 / сайт "]. Request (). GetAsync ();" должно быть "await graphClient.Sites [SPUrl +": "]. Sites [" / сегмент1 / сегмент2 / сайт "]. Request (). GetAsync ();" что соответствует синтаксису, используемому в графическом обозревателе.

Я предполагал, что запрос сайта с использованием SDK справится с этим, но я ошибся.

...