API do Microsoft Graph: token de autenticação inválido
Estou tentando usar a API do Microsoft Graph para consultar mensagens na caixa de correio do Outlook / O365. Euregistrou meu aplicativo no portal do Azure e recebeu as informações necessárias para consultar a API. O aplicativo tem oMail.Read
permissão. (Não tenho acesso ao portal do Azure, disseram-me que foi configurado dessa maneira.) Quando obtenho meu token no terminal do OAuth, no entanto, ele não funciona em nenhuma chamada subsequente. Estou usando o módulo de solicitações do Python para testar agora.
Por que esta chamada está falhando? Parece que estou passando todas as informações corretas, mas estou claramente perdendo alguma coisa.
Estou recebendo o token executando umaPOST
em:
https://login.microsoftonline.com/my.domain/oauth2/token
Eu passo os parâmetros necessários:
data = {'grant_type': 'client_credentials', 'client_id': CLIENTID, 'client_secret': SECRET, 'resource': APPURI}
e recebo uma resposta como esta:
{
'resource': 'APPURI',
'expires_in': '3599',
'ext_expires_in': '3600',
'access_token': 'TOKENHERE',
'expires_on': '1466179206',
'not_before': '1466175306',
'token_type': 'Bearer'
}
No entanto, tento usar esse token e ele não funciona para nada que chamo. Estou passando como um cabeçalho:
h = {'Authorization': 'Bearer ' + TOKEN}
Estou chamando este URL:
url = 'https://graph.microsoft.com/v1.0/users/[email protected]/messages'
Especificamente, eu uso isso:
r = requests.get(url, headers=h)
A resposta é 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.'
}
}