Ich bin neu in Office 365 und habe Probleme beim Zugriff auf Rest-API. Ich versuche, den Rest API von Kalender und Mail API zu testen, so entschied ich mich, Postman zu verwenden. Um diese APIs zu testen, benötige ich jedoch ein Zugriffs-Token im Authorization-Header. Um herauszufinden, wie man ein Token erhält, entschied ich mich, das Beispielprojekt here zu erhalten, zu konfigurieren, auszuführen und mich an dieser lokalen Site anzumelden, um das Token im lokalen Speicher zwischenzuspeichern und dieses Token für weitere Anfragen in Postman zu verwenden. Alle Anfragen, die ich getestet habe, haben jedoch "401 unautorisierte Anfrage" zurückgegeben.Zugriff auf die Kalender-API 401 Nicht autorisiert
Was ich tat:
- eine neue App auf Azure ADD Registrieren Sie sich bei O365-Konto verknüpft
- full App-Berechtigungen und delegierte Berechtigungen.
- Aktualisieren Sie 'oauth2AllowImplicitFlow' in der Manifestdatei auf true.
- Clone Beispielprojekt
In app.js, ich den Inhalt der Konfigurationsfunktion ändern ändern, wie folgend
function config($routeProvider, $httpProvider, adalAuthenticationServiceProvider) { $routeProvider .when('/', { templateUrl: 'views/home.html', controller: 'HomeController', controllerAs: 'home', requireADLogin: true }) .otherwise({ redirectTo: '/' }); // The endpoints here are resources for ADAL to get tokens for. var endpoints = { 'https://outlook.office365.com': 'https://outlook.office365.com' }; // Initialize the ADAL provider with your tenant name and clientID (found in the Azure Management Portal). adalAuthenticationServiceProvider.init( { tenant: 'mytenantname.onmicrosoft.com', clientId: '<my cliend Id>', endpoints: endpoints, cacheLocation: 'localStorage' }, $httpProvider ); };
Dann lief ich die app, es mir melden Sie sich an ganz gut und ich kann das Token auch erhalten, aber dieses Token ist auch nicht autorisiert, um es anzufordern. Ich entschlüsselte das Token und sah den Wert von 'aud', es gab nicht "https://outlook.office365.com/" zurück. In this url, sagte der Autor, dass „für die E-Mail, Kalender oder Kontakte APIs“
Also, was habe ich verpasst https://outlook.office365.com/ „Dies sollte“?
Ich verwende die Standard-Mail-Funktion in diesem gihub Projekt zur Verfügung gestellt senden, und es stellte sich heraus, dass es nicht die access_token http bekommen könnte: // i.imgur.com/4500mK6.png und ich habe gerade bestätigt, dass ich das id_token verwendet, um API-Aufruf zu machen. So, jetzt, wie man entdeckt, warum das access_token leer ist? –
Siehe mein Update # 1 in Antwort –
Ich bin bereits in der Lage, das Zugriffstoken zu erhalten, aber durch Eingabe der URLs und erhalten Sie den Autorisierungscode manuell, nicht durch das Beispielprojekt. Das Problem bezieht sich nicht auf die Berechtigung für die Konfiguration der App auf Azure AD, da ich bereits die vollständige Berechtigung für Exchange Online dafür eingerichtet habe. Weiß noch nicht, warum –