Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Microsoft Graph API - SendMail http 400 - API url from documentation not working

My application sends email using Microsoft Graph. We followed the documentation, this was working as expected for almost a year:

https://graph.microsoft.com/v1.0/users/me/microsoft.graph.sendmail

Since 3/8/2019, the same code sendmail API in PROD started failing with the HTTP 400 - Bad Request:

{
  "error": {
    "code": "TargetIdShouldNotBeMeOrWhitespace",
    "message": "Id is malformed.",
    "innerError": {
      "request-id": "0de5a4eb-dac4-4d98-a4b4-178e503a6657",
      "date": "2019-03-19T17:16:20"
    }
  }
}

As a part of the investigation, we found that the SendMail documentation has a different URL used in the examples than the API help section. We were successful when calling this URL:

https://graph.microsoft.com/v1.0/me/sendmail

Questions:

  1. Clearly looks like there was some update on the Graph API happened around 3/8/2019 that disabled working of the earlier URL

  2. Documentation has 2 URL's that are misleading/confusing: one is the API help section and one in examples. As of now the API URL in the help section is no longer working. That should be fixed with the correct URL to be used.

  3. Why was such breaking change like this introduced that caused a PROD outage for our application?

  4. What is the official channel to get these changes?

like image 876
Nikhil Dewasthali Avatar asked Mar 22 '19 19:03

Nikhil Dewasthali


People also ask

How do I grant access to Microsoft Graph API?

Go to the app's API permissions page. Select Add a permission and then choose Microsoft Graph in the flyout. Select Delegated permissions. Use the search box to find and select the required permissions.

How do I send an email using Microsoft Graph API?

From the app page in the Azure Portal: API permissions > Add a permission. Microsoft Graph > Application Permissions > Mail. Send > click Add Permission.

How does Microsoft Graph connect to powershell?

Use the Connect-MgGraph command to sign in with the required scopes. You'll need to sign in with an admin account to consent to the required scopes. The command prompts you to go to a web page to sign in using a device code. Once you've done that, the command indicates success with a Welcome To Microsoft Graph!


1 Answers

The correct URI is https://graph.microsoft.com/v1.0/me/microsoft.graph.sendmail (not /me)

like image 66
Marc LaFleur Avatar answered Nov 12 '22 12:11

Marc LaFleur