MS Graph API: неверный токен аутентификации

Я пытаюсь использовать Microsoft Graph API для запроса сообщений в почтовом ящике Outlook / O365. язарегистрировал мое приложение на портале Azure и получил необходимую информацию для запроса API. Приложение имеетMail.Read разрешение. (У меня нет доступа к порталу Azure, мне сказали, что он настроен таким образом.) Однако, когда я получаю свой токен от конечной точки OAuth, он не работает ни при каких последующих вызовах. Я использую модуль запросов Python для тестирования прямо сейчас.

Почему этот звонок не работает? Кажется, что я передаю всю правильную информацию, но я явно что-то упускаю.

Я получаю токен, выполняяPOST на:

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

Я передаю необходимые параметры:

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

и я получаю ответ как это:

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

Однако я пытаюсь использовать этот токен, и он не работает для всего, что я называю. Я передаю это как заголовок:

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

Я звоню по этому адресу:

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

В частности, я использую это:

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

Ответ 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.'
     }
}

Ответы на вопрос(5)

Ваш ответ на вопрос