Не удалось получить почту от Microsoft Graph API - PullRequest
0 голосов
/ 21 июня 2019

Я пытаюсь получать письма из своей учетной записи outlook с помощью Graph API.Я использую учетную запись организации Outlook, с которой я настроил свое приложение.

Я успешно могу получить токен auth2 от api https://login.microsoftonline.com/common/oauth2/v2.0/token, но при запросе api я получаю сообщение об ошибке ниже

{
    "error": {
        "code": "BadRequest",
        "message": "Current authenticated context is not valid for this request. This occurs when a request is made to an endpoint that requires user sign-in. For example, /me requires a signed-in user.  Acquire a token on behalf of a user to make requests to these endpoints.  Use the OAuth 2.0 authorization code flow for mobile and native apps and the OAuth 2.0 implicit flow for single-page web apps.",
        "innerError": {
            "request-id": "807ce785-38b6-4fbb-b670-6419768b08c3",
            "date": "2019-06-21T11:59:26"
        }
    }
}

Я использовал API https://graph.microsoft.com/v1.0/me/messages и использовал следующие заголовки:

X-AnchorMailbox:{{my_email}}
Accept:application/json
Authorization:Bearer {{token}}

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

1 Ответ

1 голос
/ 21 июня 2019

Похоже, что полученный токен буквально не имеет зарегистрированного пользовательского контекста, как говорится в сообщении об ошибке. Вы, вероятно, используете поток учетных данных клиента OAuth2 для получения токена, в то время как для вызова методов / me вам нужно использовать неявный поток предоставления, который перенаправит пользователя на login.microsoftonline.com для входа, а затем использует полученный (через делегированные разрешения) токен позвонить График.

Итак, у вас есть два варианта:

  1. Использовать делегированные разрешения, неявный поток грантов (пользователь входит в систему в интерактивном режиме) и https://graph.microsoft.com/v1.0/me/messages
  2. Использовать разрешения приложений, поток предоставления учетных данных клиента (вход пользователя не требуется) и https://graph.microsoft.com/v1.0/users/{userPrincipalName}/messages
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...