Microsoft Graph API Beta: Subscribe to Event Notif

2019-08-08 18:45发布

问题:

I created an app on https://apps.dev.microsoft.com

with the following Application Permissions:

Calendars.Read (Admin Only) Calendars.ReadWrite (Admin Only) User.Read.All (Admin Only)

Admin Consent

Admin consent was then successfully granted via this URL

https://login.microsoftonline.com/strixtechnology.onmicrosoft.com/adminconsent?client_id=bbb35336-faee-4c10-84b4-34136634db41&state=1234&redirect_uri=https%3A%2F%2Fdashmeetings.com%2Fmicrosoft%2Foauth

Get access token

An access token was then obtained from

POST https://login.microsoftonline.com/common/oauth2/v2.0/token

with headers

Content-Type=application/x-www-form-urlencoded

and body with key-value pairs

grant_type=client_credentials
client_id=bbb35336-faee-4c10-84b4-34136634db41
client_secret=xxx
scope=https://graph.microsoft.com/.default

This returns an access token.

Subscribe to notifications

Using that access token, I then try to subscribe to the events on a certain resource mailbox:

POST https://graph.microsoft.com/beta/subscriptions

with headers

Content-Type=application/json
Authorization=Bearer <access_token_here>

and body

{
   "changeType": "created,updated,deleted",
   "notificationUrl": "https://dashmeetings.com/microsoft/notify",
   "resource": "users/mahogany@strixtechnology.com/events",
   "expirationDateTime":"2017-12-01T11:00:00.0000000Z",
   "clientState":"1234"
}

This returns a 401 Unauthorized with

{
    "error": {
        "code": "ExtensionError",
        "message": "Operation: Create; Exception: [Status Code: Unauthorized; Reason: Unauthorized]",
        "innerError": {
            "request-id": "98ce5e5e-1ce4-4417-8c35-456a3cc0e696",
            "date": "2017-11-30T10:59:28"
        }
    }
}

This question seems similar to “Resource not found for the segment” using Graph subscription beta, but I follow the same steps without any luck

回答1:

The admin consent URL had to be

https://login.microsoftonline.com/common/adminconsent?client‌​_id=bbb35336-faee-4c‌​10-84b4-34136634db41‌​&state=1234&redirect‌​_uri=https%3A%2F%2Fd‌​ashmeetings.com%2Fmi‌​crosoft%2Foauth

and the access token address:

https://login.microsoftonline.com/<tenant_id>/oauth2/v2.0/to‌​ken