Я пытаюсь реализовать клиент php, получить доступ к почтовому ящику пользователя с помощью Graph API. Поскольку это фоновая служба, которая должна извлекать указанное c почтовое вложение, она должна работать с паролем типа предоставления. До сих пор мне было очень легко работать, сделав вход в систему с помощью thephpleague / oauth2-client и типа предоставления client_credentials:
$provider = new \League\OAuth2\Client\Provider\GenericProvider([
'clientId' => '...',
'clientSecret' => '...',
'redirectUri' => 'https://login.microsoftonline.com/common/oauth2/nativeclient',
'urlAuthorize' => null,
'urlAccessToken' => 'https://login.microsoftonline.com/.../oauth2/token?api-version=1.0',
'urlResourceOwnerDetails' => 'https://graph.microsoft.com/v1.0/me',
]);
$accessToken = $provider->getAccessToken('client_credentials');
Теперь я пробую его с паролем типа предоставления, но это не удается:
$provider = new \League\OAuth2\Client\Provider\GenericProvider([
'clientId' => '...',
'clientSecret' => '...',
'redirectUri' => 'https://login.microsoftonline.com/common/oauth2/nativeclient',
'urlAuthorize' => null,
'urlAccessToken' => 'https://login.microsoftonline.com/.../oauth2/token?api-version=1.0',
'urlResourceOwnerDetails' => 'https://graph.microsoft.com/v1.0/me',
]);
$accessToken = $provider->getAccessToken('password', [
'username' => '...',
'password' => '...',
]);
Ответ я получаю: invalid_request
. Google, эта ошибка, я пришел к https://docs.microsoft.com/de-de/azure/active-directory/develop/v2-oauth2-auth-code-flow, который говорит мне, я должен исправить свой запрос.
Теперь ... как-то сложно, найти и б) найти учебник, рассказать, как правильно добавить приложение, чтобы я мог заставить его работать (возможно, и результат, потому что макет o365 меняется быстро ...)
У кого-нибудь есть идея, что правильные параметры и что я должен делать в Azure Центре администрирования Active Directory, чтобы он работал?
Моя цель - «только», получить доступ к почтовому ящику пользователя и получить вложения из существующих писем. Я думаю, что когда я могу успешно пройти аутентификацию, все остальное легко (надеюсь, что так).