MS Graph API: token de autenticación no válido

Estoy tratando de usar la API de Microsoft Graph para consultar mensajes en un buzón de Outlook / O365. yoregistrado mi aplicación en el portal de Azure y recibió la información necesaria para consultar la API. La aplicación tiene elMail.Read permiso. (No tengo acceso al portal de Azure, me dijeron que estaba configurado de esta manera). Sin embargo, cuando obtengo mi token del punto final de OAuth, no funciona en ninguna llamada posterior. Estoy usando el módulo de solicitudes de Python para probar en este momento.

¿Por qué esta llamada falla? Parece que estoy pasando toda la información correcta, pero claramente me falta algo.

Estoy obteniendo el token realizando unPOST en:

https://login.microsoftonline.com/my.domain/oauth2/token

Paso los parámetros necesarios:

data = {'grant_type': 'client_credentials', 'client_id': CLIENTID, 'client_secret': SECRET, 'resource': APPURI}

y recibo una respuesta como esta:

{
    'resource': 'APPURI',
    'expires_in': '3599',
    'ext_expires_in': '3600',
    'access_token': 'TOKENHERE',
    'expires_on': '1466179206',
    'not_before': '1466175306',
    'token_type': 'Bearer'
}

Sin embargo, trato de usar ese token y no funciona para nada de lo que llamo. Lo paso como encabezado:

h = {'Authorization': 'Bearer ' + TOKEN}

Estoy llamando a esta URL:

url = 'https://graph.microsoft.com/v1.0/users/[email protected]/messages'

Específicamente, uso esto:

r = requests.get(url, headers=h)

La respuesta es un 401:

{
    'error': {
        'innerError': {
            'date': '2016-06-17T15:06:30',
            'request-id': '[I assume this should be removed for privacy]'
         },
         'code': 'InvalidAuthenticationToken',
         'message': 'Access token validation failure.'
     }
}

Respuestas a la pregunta(5)

Su respuesta a la pregunta