Я использую Graph Explorer для проверки.
API: GET /users/{userPrincipalName}/insights/shared, вернуть 403.
API: GET /users/{userPrincipalName}/insights/used, вернуть 200 и использованные документы.
Оба API требуют одинакового разрешения: Sites.Read.All, Sites.ReadWrite.All
Кто-нибудь может помочь в этом?
Если вы звоните GET /users/{id | userPrincipalName}/insights/shared
, убедитесь, что у вас есть Sites.Read.All или Sites.ReadWrite.All application permissions
(не забудьте предоставить согласие администратора на это разрешение), потому что ни один пользователь не войдет в систему на конечной точке /users
. Затем вам нужно использовать поток учетных данных клиента, чтобы получить токен доступа.
Обновлять:
Когда вы используете Graph Explorer для тестирования, поскольку вам нужно войти в систему как пользователь, вы фактически используете токен, полученный потоком userName/Password. согласно документу : Только пользователь может делать запросы, используя идентификатор пользователя или имя участника.
Когда вы входите в систему пользователя, вы можете использовать только идентификатор или основное имя вошедшего в систему пользователя. Нельзя использовать id других пользователей, иначе будет сообщено об ошибке 403. Но когда вы используете другие инструменты, такие как почтальон для тестирования, поскольку вы не входите в систему как пользователь, а используете приложение в качестве субъекта-службы для выполнения запроса, вы можете получить список общих документов от других пользователей.
Подводя итог в одном предложении: пока вы вошли в систему как пользователь, вы можете получить только список общих документов вошедшего в систему пользователя. Если вы хотите получить список общих документов от других пользователей, не выполняйте вход пользователей.
Если мой ответ полезен для вас, вы можете принять его как ответ (нажмите на галочку рядом с ответом, чтобы переключить его с серого на заполненный). Это может быть полезно для других членов сообщества. Спасибо.
/insights/shared и /insights/used имеют одинаковое разрешение, /insights/used работает, а /insights/shared нет. Так что это не проблема разрешения здесь. Я использую Graph Explorer для проверки.
@KingCao Вам необходимо предоставить разрешения для приложения, а затем использовать почтальона для тестирования. Я только что использовал Graph Explorer для тестирования, и он также вернул мне 403, потому что Graph Explorer по умолчанию использует делегированные разрешения.
интересно то, что я могу получить информацию/использовать через Graph Explorer, у информации/использования есть те же разрешения, что и у информации/общего доступа в соответствии с learn.microsoft.com/en-us/graph/api/resources/…
@KingCao Я обновил ответ, чтобы дать вам подробное объяснение.
Используйте jwt.ms для анализа вашего токена доступа и предоставления скриншотов.