Ich versuche, die Microsoft Graph API zu verwenden, um ein Outlook/O365-Postfach nach Nachrichten abzufragen. I registered my app im Azure-Portal und erhielt die erforderlichen Informationen zum Abfragen der API. Die App verfügt über die Berechtigung Mail.Read
. (Ich habe keinen Zugriff auf das Azure-Portal. Mir wurde gesagt, dass es auf diese Weise eingerichtet wurde.) Wenn ich mein Token vom OAuth-Endpunkt abrufe, funktioniert es bei nachfolgenden Aufrufen jedoch nicht. Ich verwende Pythons Request-Modul zum Testen.MS Graph API: ungültiges Authentifizierungstoken
Warum schlägt dieser Anruf fehl? Es scheint, als würde ich alle korrekten Informationen weitergeben, aber mir fehlt eindeutig etwas.
Ich erhalte die Token durch eine POST
auf Durchführung:
https://login.microsoftonline.com/my.domain/oauth2/token
ich die notwendigen Parameter übergeben:
data = {'grant_type': 'client_credentials', 'client_id': CLIENTID, 'client_secret': SECRET, 'resource': APPURI}
und ich bekomme eine Antwort wie folgt aus:
{
'resource': 'APPURI',
'expires_in': '3599',
'ext_expires_in': '3600',
'access_token': 'TOKENHERE',
'expires_on': '1466179206',
'not_before': '1466175306',
'token_type': 'Bearer'
}
Ich versuche jedoch, dieses Token zu verwenden, und es funktioniert nicht für irgendetwas, das ich anrufe. Ich bin es als Header vorbei:
h = {'Authorization': 'Bearer ' + TOKEN}
ich diese URL bin Aufruf:
url = 'https://graph.microsoft.com/v1.0/users/[email protected]/messages'
Insbesondere verwende ich diese:
r = requests.get(url, headers=h)
Die Antwort ist ein 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.'
}
}
finde ich auf meiner Web-Anwendung, um eine Aufgabe zu gründen bin versucht, die eine bestimmte Mailbox für neue E-Mails in regelmäßigen Abständen überprüfen wird und verarbeiten Anhänge auf ihnen. Klingt so, als würde ich es falsch machen. – vaindil
Dies funktioniert, aber Sie müssen entweder ein Token mit den Anmeldeinformationen dieses Postfachs abrufen oder ein Konto mit Administratorrechten verwenden. –
Hoffe, es ist okay, huckepack davon. Wir können nicht herausfinden, wo die Anmeldeinformationen unter dem Konto generiert werden. Ich kann mich nicht im Portal anmelden, da es kein Administratorkonto ist. Wo würden wir das machen? – vaindil