2016-08-09 15 views
9

Próbuję zrobić widok kalendarza dla mojej firmy, aby pokazać, którzy pracownicy są dostępni. Zrobiłem aplikację na Azure, mogę zalogować się do systemu, otrzymuję token dostępu, ale nie mogę uzyskać informacji.Office 365 api w PHP

buduję URL żądania za pomocą curl i wysłać ten nagłówek z moją prośbę

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~" 
} 

A wszystko otrzymuję jako odpowiedź brzmi: ""

Co robię źle?

UPDATE

Po zalogowaniu, Microsoft nie zapytać, czy chcę, aby przyznać dostęp do aplikacji, ale nie daj mi token dostępu. Czy to może być problem? I jak mogę poprosić o pozwolenie?

UPDATE 2

Po zalogowaniu się i stara się uzyskać informacje, otrzymuję 401 błędzie: Odmowa dostępu. Co jest dziwne, myślę, że dzięki temu dostałem już token dostępu.

UPDATE 3

Kilka dni dalej i próbowałem niektóre przykładowy kod i samouczka, aby sprawdzić, czy to działa. Ale nawet w tych aplikacjach api wydaje się nie działać. To są projekty, które wypróbowałem.

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

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

+0

Z jakiego interfejsu API korzystasz? –

+0

Próbowałem różnych interfejsów API: openid, mail.read, kalendars.read, contacts.read.Ale dziwne jest to, że kiedy się loguję, nie pytam o permisson – apero

+0

Cześć, apero, czy próbowałeś wykorzystać https://graph.microsoft.io/en-us/graph-explorer# do przetestowania interfejsów API, aby sprawdzić, czy jest to problem z pozwoleniem? –

Odpowiedz

6

Według listy błędów w https://graph.microsoft.io/en-us/docs/overview/errors, gdy pojawi się błąd 401, oznacza to

Wymagane informacje uwierzytelniania jest lub nie jest on ważny dla zasobu.

Możliwe, że token dostępu nie zawiera zakresu zasobu, którego żąda aplikacja. Na przykład.

Jeśli chcesz wymienić zasób widoku kalendarza, a według dokumentu w https://graph.microsoft.io/en-us/docs/api-reference/v1.0/api/user_list_calendarview:

jeden z poniższych zakresów jest wymagane do wykonania tej API: Calendars.Read; Calendars.ReadWrite

Zaloguj portal Twojego Azure aplikacji AD, sprawdzić uprawnienia Have full access to user calendars lub Read user calendars z Microsoft Graph czy zostały zaznaczone.

Możesz również sprawdzić sekcję "zasięgu" jednostki odpowiedzi za pomocą tokena dostępu, aby uzyskać więcej informacji, patrz https://azure.microsoft.com/en-us/documentation/articles/active-directory-protocols-oauth-code/#use-the-authorization-code-to-request-an-access-token.

+0

Przepraszamy za spóźnioną reakcję.To też nie pomogło mi :(zobacz moje zaktualizowane pytanie – apero

+0

Czy udało ci się uzyskać funkcję zwijania? cokolwiek z '$ error = curl_error ($ ch);'? Co masz na myśli, nie działa? Czy otrzymujesz jakieś informacje? –

+0

Tak, funkcja zwijania się powiodła, nie otrzymuję żadnych błędów. $ błąd jest pusty. informacja, która jest bardzo confussing – apero

Powiązane problemy