2016-08-09 63 views
9

Ich versuche, eine Kalenderansicht für mein Unternehmen zu machen, um zu zeigen, welche Mitarbeiter verfügbar sind. Ich habe eine App in Azure erstellt, ich kann mich im System anmelden, ich bekomme ein Zugriffstoken, aber ich kann keine Informationen erhalten.Office 365 api in PHP

Ich baue die Anfrage-URL mit curl und diesen Header mit meiner Anfrage ist

array(6) { 
[0]=> 
    string(28) "User-Agent: php-tutorial/1.0" 
    [1]=> 
    string(588) "Authorization: Bearer ~ACCESS_TOKEN~" 
    [2]=> 
    string(24) "Accept: application/json" 
    [3]=> 
    string(55) "client-request-id: ~GUID~" 
    [4]=> 
    string(30) "return-client-request-id: true" 
    [5]=> 
    string(45) "X-AnchorMailbox: ~MAIL~" 
} 

Und alles, was ich als Antwort erhalten senden: „“

Was mache ich falsch?

UPDATE

Nach der Anmeldung Microsoft fragt nicht, wenn ich Zugriff auf die App gewähren will, aber es tut mir ein Zugriffstoken gewähren. Könnte das das Problem sein? Und wie kann ich um Erlaubnis bitten?

UPDATE 2

Nach der Anmeldung und versuchen, Informationen zu erhalten, bekomme ich einen 401 Fehler zu sagen: Zugriff verweigert. Was merkwürdig ist, denke ich, weil es mir bereits ein Zugriffs-Token gewährt hat.

UPDATE 3

Paar Tage weiter und ich habe einige Beispiele und Tutorials Code versucht, zu überprüfen, ob es funktioniert. Aber selbst in diesen Apps scheint die API nicht zu funktionieren. Dies sind die Projekte, die ich ausprobiert habe.

https://github.com/microsoftgraph/php-connect-rest-sample

https://dev.outlook.com/restapi/tutorial/php

+0

Welche API verwenden Sie? –

+0

Ich habe verschiedene APIs ausprobiert: openid, mail.read, calendars.read, contacts.read.Aber die seltsame Sache ist, wenn ich mich anmelde nicht fragen nach permitson – apero

+0

Hallo, Apero, haben Sie versucht, https://graph.microsoft.io/en-us/graph-explorer# zu nutzen, um die APIs zu testen, zu überprüfen, ob es ein Berechtigungsproblem ist? –

Antwort

6

bei https://graph.microsoft.io/en-us/docs/overview/errors der Fehlerliste nach, wenn Sie die 401-Fehler erhalten, bedeutet es

erforderliche Authentifizierungsinformationen nicht vorhanden oder nicht gültig für die Ressource ist.

Möglicherweise enthält Ihr Zugriffstoken nicht den Bereich für die Ressource, die Ihre Anwendung anfordert. Z.B.

Wenn Sie die Ressource von Kalenderansicht und nach das Dokument bei https://graph.microsoft.io/en-us/docs/api-reference/v1.0/api/user_list_calendarview auflisten möchten:

Einer der folgenden Bereiche ist erforderlich, um diese API auszuführen: Calendars.Read; Calendars.ReadWrite

Bitte einloggen, um das Portal Ihrer Azure AD Anwendung, überprüfen Sie die Berechtigungen Have full access to user calendars oder Read user calendars von Microsoft Graph ob markiert wurden.

Und Sie können den Bereich "Bereich" des Antwortkörpers mit Ihrem Zugriffstoken überprüfen, siehe https://azure.microsoft.com/en-us/documentation/articles/active-directory-protocols-oauth-code/#use-the-authorization-code-to-request-an-access-token für weitere Informationen.

+0

Entschuldigung für die späte Reaktion Dies half mir auch nicht :(Siehe meine aktualisierte Frage – apero

+0

Waren Sie erfolgreich in der Curl-Funktion? alles mit '$ error = curl_error ($ ch);' Und was meinst du nicht funktionieren? Hast du irgendwelche Informationen? –

+0

Ja die Curl-Funktion ist erfolgreich, ich bekomme keine Fehler. $ Fehler ist leer. Ich bekomme Null Information das ist was sehr verwirrend ist – apero