В настоящее время я работаю над извлечением siteId и listId из общих папок. Пока мне удается это сделать в папке Sharepoint, где у меня есть доступ к Sharepoint root, но когда я использую URL-адрес общего ресурса Sharepoint, у меня появляется следующее сообщение об ошибке: «Неверное имя хоста для арендатора»
Для некоторого контекста мой пример использования следующий:
- Мой коллега делится со мной папкой с Sharepoint (xxx.sharepoint.com).
- У меня есть доступ к его папке.
- Если я просто go на root (xxx.sharepoint.com), у меня "отказано в доступе", что нормально (я считаю).
- Я хочу получить sideId, listId (и, в конечном итоге, driveId) из общей папки, используя URL-адрес этой папки.
Пока, как я уже говорил ранее, я могу получить эти информация для папки sharepoint, где у меня есть доступ к root. К сожалению, в моем случае использования, описанном ранее, у меня есть ошибка, и я не могу получить ее, даже извлекая все сайты, к которым у меня есть доступ, или получая список по URL-адресу папки.
Часть кода что я использую до сих пор:
public async Task<List> UrlToList(string accessToken, string url)
{
url = url.Replace("/Forms/AllItems.aspx", "");
Uri uri = new Uri(url);
var segments = string.Join("", uri.Segments[0..^1]).TrimEnd('/');
var request = graphClient.Sites[uri.Host].SiteWithPath(segments).Lists.Request(Options(accessToken));
var lists = await request.GetAsync();
var list = lists.First(l => string.Compare(url, l.WebUrl, true) == 0);
return list;
}
Пока я вижу только два варианта ... Это может быть связано с конфигурацией xxx.sharepoint.com или проблемой с правами доступа.
Есть ли какой-нибудь возможный способ получить эту информацию? Если так, то как? И есть ли где-нибудь еще пример кода?