Microsoft Graph только возвращает область «User.Read» с предоставлением пароля - PullRequest
1 голос
/ 04 июня 2019

Я пытаюсь получить электронные письма от 365 электронных писем продавцов нашей организации.

Я использую grant_type=password и предоставляю scope='Mail.Read', но, независимо от того, что я добавляю в параметр scope, API возвращает только User.Read.

Я сделал такой вызов:

https://login.microsoftonline.com/{mytenantId}/oauth2/token

, передавая следующие параметры:

client_id = myAppId,
client_secret = myAppPassword,
resource = 'https://graph.microsoft.com/',
username = vendedor@email.com.br,
password = passwordDoVendedor,
scope = 'user.read,mail.read,mail.send',
grant_type = 'password',
prompt = 'admin_consent'

возвращает только User.Read независимо от того, что я добавляю в параметр области действия:

{#662
  +"token_type": "Bearer"
  +"scope": "User.Read"
  +"expires_in": "3599"
  +"ext_expires_in": "3599"
  +"expires_on": "1559623624"
  +"not_before": "1559619724"
  +"resource": "https://graph.microsoft.com/"
  +"access_token": "...token..."
  +"refresh_token": "...token..."
}

1 Ответ

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

Вы не можете указать области с конечной точкой v1, она поддерживается только с конечной точкой v2 (см. Области, а не ресурсы в документации).

Чтобы добавить Mail.Read, вам необходимо добавить это к регистрации вашего приложения на портале Azure.

Я также был бы упущен, если бы не указал, что использование предоставления пароля является почти всегда плохой идеей. Это принципиально менее безопасно, чем любой другой грант OAuth.

...