我正在使用Microsoft Graph API代表管理员发送电子邮件。令牌在应用程序级别具有权限Mail.Send
。我收到400 - Bad Request
作为回复。
请求:POST https://graph.microsoft.com/v1.0/me/sendmail
{
"message": {
"subject": "first mail",
"body": {
"contentType": "Text",
"content": "commented commmented"
},
"toRecipients": [{
"emailAddress": {
"address": "Alex@*******"
}
}]
},
"saveToSentItems": "false"
}
回复是400 - Bad Request
:
{
"error": {
"code": "AuthenticationError",
"message": "Error authenticating with resource",
"innerError": {
"request-id": "4c5cc54c-e590-4d9f-903f-4bc9828da707",
"date": "2018-01-19T19:48:11"
}
}
}
我搜遍了Stack Overflow但我找不到解决方案。有人可以帮帮我吗?提前谢谢。
答案 0 :(得分:0)
使用client_credentials
时,您无法使用/me
端点。图表将/me
的请求转换为/users/{ID of the Authenticated User}
。由于您在使用客户端凭据(即仅限应用程序)时没有“经过身份验证的用户”,因此您无法在此处使用/me
。
另请注意,回复是AuthenticationError
。这表明您尚未完成管理员同意过程。任何希望利用Client_Credentials
OAUTH流程的应用程序必须首先为租户提供管理员同意。目前尚不清楚您是如何检索令牌的,但如果您使用的是v2端点,则可以按照此步骤进行操作:v2 Endpoint and Admin Consent