Я пытаюсь получить информацию о почтовом ящике моего пользователя с помощью API Список сообщений (https://docs.microsoft.com/en-us/graph/api/user-list-messages?view=graph-rest-1.0&tabs=http).
Я следую инструкциям, описанным в https://docs.microsoft.com/en-us/graph/auth-v2-service.
Я зарегистрировал свое приложение, настроил «Разрешения приложений» на возможность использования Список сообщений , получил согласие администратора с использованием
// Line breaks are for legibility only.
GET https://login.microsoftonline.com/{MY_TENANT_NAME}/adminconsent
?client_id=MY_APP_CLIENT_ID
&state=12345
&redirect_uri=https://localhost/myapp/permissions
И, предоставив свои учетные данные, я смог получить admin_consent = True URL. И тогда я мог бы получить токен доступа, используя
// Line breaks are for legibility only.
POST https://login.microsoftonline.com/{MY_TENANT_NAME}/oauth2/v2.0/token HTTP/1.1
Host: login.microsoftonline.com
Content-Type: application/x-www-form-urlencoded
client_id=MY_APP_CLIENT_ID
&scope=https%3A%2F%2Fgraph.microsoft.com%2F.default
&client_secret=MY_APP_SECRET_KEY
&grant_type=client_credentials
У меня есть действительный токен доступа. Я вижу, как мои пользователи звонят https://graph.microsoft.com/v1.0/users.
Однако, когда я звоню https://graph.microsoft.com/v1.0/users/ {MY_USER_ID} / messages, я получаю сообщение об ошибке.
{
"error": {
"code": "OrganizationFromTenantGuidNotFound",
"message": "The tenant for tenant guid '2a862810-93dc-4096-a6b0-dda413670497' does not exist.",
"innerError": {
"request-id": "ba60c495-742b-4655-be74-fe8802427756",
"date": "2020-04-11T19:20:32"
}
}
}
Интересно, что когда я использую https://developer.microsoft.com/en-us/graph/graph-explorer, я могу получить электронную почту моего пользователя. Я проверил запросы, но это не похоже на разницу. Единственное отличие, которое я увидел, при исследовании AAD -> Приложения предприятия -> Разрешения, я могу видеть разрешения пользователя в приложении Graph Explorer, но не в моем приложении.