SendMail API抛出400 - 错误请求

时间:2018-01-19 22:36:18

标签: microsoft-graph outlook-restapi

我正在使用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但我找不到解决方案。有人可以帮帮我吗?提前谢谢。

1 个答案:

答案 0 :(得分:0)

使用client_credentials时,您无法使用/me端点。图表将/me的请求转换为/users/{ID of the Authenticated User}。由于您在使用客户端凭据(即仅限应用程序)时没有“经过身份验证的用户”,因此您无法在此处使用/me

另请注意,回复是AuthenticationError。这表明您尚未完成管理员同意过程。任何希望利用Client_Credentials OAUTH流程的应用程序必须首先为租户提供管理员同意。目前尚不清楚您是如何检索令牌的,但如果您使用的是v2端点,则可以按照此步骤进行操作:v2 Endpoint and Admin Consent