Microsoft Graph. NET Клиентская библиотека: загрузка файла в центр документов - PullRequest
0 голосов
/ 27 февраля 2020

Я хочу создать файл в центре документов Sharepoint с помощью Microsoft Graph. NET Клиентская библиотека. Кажется, что я могу успешно создать файл, но он не виден никому, кроме приложения, которое его создало. Когда приложение создает файл в «обычной» библиотеке документов с точно таким же кодом, этот файл виден другим пользователям (как и ожидалось).

Вот код, который я использую:

var result = await client.Drives[documentCenterDriveId]
                         .Items[subfolderId]
                         .ItemWithPath(fileName)
                         .Content
                         .Request()
                         .PutAsync<DriveItem>(new MemoryStream(buffer));

После этого я могу запросить папку и увидеть, что файл там есть:

var result = await client.Drives[documentCenterDriveId]
                         .Items[subfolderId]
                         .Children
                         .Request()
                         .GetAsync(); 

Однако, когда go в Microsoft Graph Explorer, войдите в систему с моими личными учетными данными (т.е. не такими, как приложение) и выдайте следующий запрос GET

https://graph.microsoft.com/v1.0/drives/documentCenterDriveId/items/subfolderId/children

Я получаю пустой список. Если я сделаю то же самое для «обычной» библиотеки документов, она будет работать, как и ожидалось.

Я проверил разрешения файла в центре документов с

var perms = await client.Drives[documentCenterDriveId]
                        .Items[fileId]
                        .Permissions
                        .Request()
                        .GetAsync();

и ролью read предоставляется группе, к которой принадлежит мой аккаунт. Это означает, что я должен быть в состоянии видеть это.

Как я могу диагностировать источник этой проблемы? Есть ли где-нибудь в Sharepoint журналы, где я мог бы узнать больше? Когда я запускаю свой код, нет сообщений об ошибках или исключений.

1 Ответ

0 голосов
/ 28 февраля 2020

Я узнал, что я также должен проверить файл.

await client.Drives[documentCenterDriveId].Items[result.Id].Checkin().Request().PostAsync();

Я не знаю, почему мне не нужно регистрировать файл после загрузки в «обычную» библиотеку документов, но в центре документов мне нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...