Microsoft Graph API не может использовать mail.read - PullRequest
0 голосов
/ 12 марта 2019

В моем приложении я генерирую токен доступа через

GET https://login.microsoftonline.com/<TENANT_ID>/oauth2/v2.0/authorize?client_id=<CLIENT_ID>&response_type=code&response_mode=query&scope=user.read+mail.send+mail.readwrite&redirect_uri=https%3A%2F%2Fgraphresponse%2F&prompt=consent

чтобы использовать код на

POST https://login.microsoftonline.com/<TENANT_ID>/oauth2/v2.0/token

с application/x-www-form-urlencoded: grant_type=authorization_code&redirect_uri=https%3A%2F%2Fgraphresponse%2F&client_id=<CLIENT_ID>&scope=user.read+mail.send+mail.readwrite&client_secret=<CLIENT_SECRET>&code=<CODE>

Пока все хорошо, я получаю токен на предъявителя, подобный этому (отформатированный для удобства чтения):

{"token_type":"Bearer",
 "scope": 
      "Mail.Read Mail.Read.All Mail.Read.Shared 
       Mail.ReadBasic Mail.ReadWrite Mail.ReadWrite.Shared 
       Mail.Send openid User.Read profile email",
 "expires_in":3600,
 "ext_expires_in":3600,
 "access_token":"<TOKEN>"
}

и я могу использовать следующие конечные точки

GET http://graph.microsoft.com/v1.0/me 
POST http://graph.microsoft.com/v1.0/me/sendMail 
POST http://graph.microsoft.com/v1.0/me/messages

но я получаю следующую ошибку

GET http://graph.microsoft.com/v1.0/me/messages

{
  "error": {
    "code": "ErrorAccessDenied",
    "message": "Access is denied. Check credentials and try again.",
    "innerError": {
      "request-id": "xxxxxxx",
      "date": "2019-03-12T13:38:47"
    }
  }
}

Я пропустил какую-либо конфигурацию, которая необходима явно для чтения входящих сообщений текущих пользователей, или требуется какая-либо конфигурация администратора?

1 Ответ

0 голосов
/ 13 марта 2019

Когда вы пытаетесь с потоком кода авторизации , вам нужно следовать приведенным ниже

шаг для доступа

https://graph.microsoft.com data.

Примечание:

  1. Убедитесь, что у вас есть учетная запись пользователя office 365

  2. Все необходимые Предоставление разрешения

Как объясняется в документе , сначала вам нужен код запроса токена

response_type = code

Для этого есть два способа.

Из запроса почтальона и Из браузера с необходимыми учетными данными

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

Пример доступа к коду почтальона

Здесь убедитесь, что на портале вы настроили этот URL-адрес, как ожидается, см. Снимок экрана ниже:

enter image description here

Чтобы получить код доступа для запроса токена v2.0, установите конечную точку запроса:

https://login.microsoftonline.com/common/oauth2/v2.0/token

Тип содержимого: application / x-www-url-form-urlencoded

См. Снимок экрана ниже:

enter image description here

Теперь Перейдите на вкладку «Авторизация», выберите тип OAuth 2.0 и нажмите «Получить новый доступ»

Токен. Смотрите снимок экрана ниже:

enter image description here

Вам будет предложено всплывающее окно почтальона, как показано ниже:

enter image description here

Введите здесь необходимую информацию и нажмите «Запрос токена»

В сегменте тела консоли почтальона вы получите код доступа для запроса токена. Смотрите снимок экрана ниже:

enter image description here

Скопируйте код для следующего использования.

Теперь добавьте новую вкладку в post man для запроса токена, как показано ниже:

enter image description here

В ответ вы получите токен доступа, как показано ниже:

enter image description here

Теперь с этим запросом токена к ожидаемой конечной точке, например http://graph.microsoft.com/v1.0/me

См. Снимок экрана ниже:

enter image description here

В ответ вы получите данные конечной точки, как и ожидалось

См. Снимок экрана ниже:

enter image description here

Если у вас есть еще вопросы, просто дайте мне знать Спасибо.

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