Microsoft Graph выдает «Сайт в закодированном URI общего ресурса недействителен» при попытке доступа к общему элементу one note

#c# #microsoft-graph-api #microsoft-graph-sdks #microsoft-graph-files

#c# #microsoft-graph-api #microsoft-graph-sdks #microsoft-graph-files

Вопрос:

Я не могу заставить Microsoft graph OneDrive Share API работать с документами OneNote, общедоступными из личной учетной записи Microsoft. URL-адрес в формате https://1drv.ms/u/s!{text} генерируется при совместном использовании документа OneNote, созданного личной учетной записью Microsoft. Однако я не могу использовать API Microsoft Graph. Следующий код выдает эту ошибку:

 Unhandled exception. Status Code: BadRequest
Microsoft.Graph.ServiceException: Code: invalidRequest
Message: The site in the encoded share URI is invalid.
  

Код консольного приложения C #:

 IPublicClientApplication publicClientApplication = PublicClientApplicationBuilder
    .Create(clientId)
    .WithRedirectUri("http://localhost")
    .Build();

InteractiveAuthenticationProvider authProvider =
    new InteractiveAuthenticationProvider(publicClientApplication, new[] {
        "https://graph.microsoft.com/Sites.ReadWrite.All",
        "https://graph.microsoft.com/Files.ReadWrite",
        "https://graph.microsoft.com/Files.ReadWrite.All"
});

var graphClient = new GraphServiceClient(authProvider);

var sharingUrl = "https://1drv.ms/u/s!...";
string base64Value = System.Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(sharingUrl));
string encodedUrl = "u!"   base64Value.TrimEnd('=').Replace('/', '_').Replace(' ', '-');
var shares = await graphClient.Shares[encodedUrl].Permission.Request().GetAsync();

  

Насколько я могу судить из документов, это должно сработать, любая помощь приветствуется.

Комментарии:

1. Как вы создаете ссылки для общего доступа?

2. Чего вы пытаетесь достичь?

3. @Ehssan создал ссылку для общего доступа, используя кнопку «Поделиться» в one note под личной учетной записью.

4. @Shiva Я пытаюсь программно получить информацию о документе только по ссылке.

5. Удалось заставить его работать, используя эту документацию: learn.microsoft.com/en-us/graph/api /…