Как получить данные об общих людях из OneDrive с помощью API графа - PullRequest
1 голос
/ 21 января 2020

Я пытаюсь прочитать информацию о разрешениях и лицах, которым этот файл предоставляется в OneDrive. При проверке разрешения я получаю только данные «Управление доступными людьми», как «GrantedTo:» , остальные отображаются следующим образом.

{
  "id": "89sd809e-a6fe-47cf-a563-d21fgac9fa3",
  "roles": [
    "read"
  ],
  "link": {
    "scope": "users",
    "type": "view",
    "webUrl": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
  }
},

Как я могу получить данные этих людей? Почему API возвращает предоставляется только для лиц с управляемым доступом?

Код, который я пробовал:

var permissionss = await graphClient.Me.Drive.Items["itemID"].Permissions
                        .Request(requestOptions)
                        .WithUserAccount(ClaimsPrincipal.Current.ToGraphUserAccount())
                        .GetAsync();

Пожалуйста, помогите мне найти решение.

Заранее спасибо

1 Ответ

2 голосов
/ 22 января 2020

Только подробное разрешение для пользователя может быть указано с личными данными.

Что такое "явное разрешение"? Вы можете дать такой вид разрешения, например:

enter image description here

enter image description here

После предоставления доступа, как это, данные о человеке будут отображаться через /permissions конечную точку.

Если вы используете другие методы для обмена этим файлом, как это:

enter image description here

На самом деле он просто генерирует ссылку для обмена. Нет определенной c аудитории, которой предоставили доступ к этому файлу. Люди, у которых есть доступ к этому файлу, смогут получить к нему доступ по этой ссылке для обмена.

Таким образом, вы можете получить только ссылку для обмена "webUrl": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" в ответе.

Это просто дизайн этой конечной точки графика.

...