Учетные данные клиента Microsoft Graph - получить ошибку при отправке электронного письма от имени пользователя
Я успешно настроил учетные данные клиента OAuth 2.0 для Microsoft Graph, у меня нет проблем с аутентификационным токеном, я подписался на получение веб-хуков электронной почты для нескольких пользователей и получаю эти уведомления по электронной почте.
На портале Azure я настроил приложение на наличие разрешений уровня приложения Microsoft Graph для "Отправлять почту как любой пользователь".
Я пытаюсь переслать письмо, используя Graph, но получаю BadRequest
ошибка:
{
"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": "a64c4533-9389-4284-8cf5-68fcadf21832",
"date": "2018-05-27T17:34:29"
}
}
}
Вот как я отправляю запрос:
postData(
`${graphVersion}/me/messages/${req.body.emailUid}/forward`,
global.accessToken,
JSON.stringify(forwardConfiguration),
(requestError, data) => {
if (requestError) {
logger.log('error', "Failed to forward email: " + JSON.stringify(requestError));
} else {
logger.log("info", "Successfully forwarded email from " + req.body.email);
}
}
);
1 ответ
Вы не можете использовать /me
с учетными данными клиента.
Это потому что /me
это просто псевдоним для /user/{currentUser}
, Когда вы используете учетные данные клиента, для API не существует "пользователя" для сопоставления этого псевдонима.
Вам необходимо явно указать user
ты хочешь:
/users/{userId or userPrincipalName}/messages