2016-08-09 4 views
9

Я пытаюсь сделать представление календаря для своей компании, чтобы показать, какие сотрудники доступны. Я сделал приложение в Azure, я могу войти в систему, я получаю токен доступа, но я не могу получить информацию.Office 365 api в PHP

Я строй URL запроса с использованием локона и отправить этот заголовок с моей просьбой

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

И все это я получаю в ответ это: «»

Что я делаю неправильно?

UPDATE

После входа в систему Microsoft не спрашивает, если я хочу, чтобы предоставить доступ к приложению, но это не даждь маркер доступа. Это может быть проблема? И как я могу попросить разрешения?

UPDATE 2

После входа в систему и пытается получить информацию, я получаю 401 ошибку, говоря: отказано в доступе. Что странно, я думаю, потому что он уже предоставил мне токен доступа.

UPDATE 3

пару дней дальше, и я попробовал несколько примеров, и учебник код, чтобы проверить, работает ли он. Но даже в этих приложениях api, похоже, не работает. Это те проекты, которые я пробовал.

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

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

+0

Какой API вы используете? –

+0

Я пробовал разные API: openid, mail.read, calendars.read, contacts.read.Но странно, когда я вхожу в систему, не спрашиваю permisson – apero

+0

Привет, аперо, вы пытались использовать https://graph.microsoft.io/en-us/graph-explorer# для тестирования API-интерфейсов, чтобы проверить, есть ли проблема с разрешением? –

ответ

6

Согласно списку ошибок в https://graph.microsoft.io/en-us/docs/overview/errors, когда вы получаете сообщение об ошибке 401, это означает,

Необходимая информация для проверки подлинности либо отсутствует, либо не действует для ресурса.

Возможно, ваш токен доступа не содержит возможности для ресурса, запрашиваемого вашим приложением. Например.

Если вы хотите перечислить ресурс просмотра календаря, и в соответствии с документом на https://graph.microsoft.io/en-us/docs/api-reference/v1.0/api/user_list_calendarview:

Один из следующих областей необходимо выполнить этот API: Calendars.Read; Calendars.ReadWrite

Пожалуйста, войдите на портал вашего Azure приложения AD, проверьте разрешения Have full access to user calendars или Read user calendars из Microsoft Graph были ли отмечены.

И вы можете проверить раздел «область действия» тела ответа с помощью токена доступа, обратитесь к https://azure.microsoft.com/en-us/documentation/articles/active-directory-protocols-oauth-code/#use-the-authorization-code-to-request-an-access-token за дополнительной информацией.

+0

Прошу прощения за позднюю реакцию. Это также не помогло мне :(см. Мой обновленный вопрос – apero

+0

У вас была успешная функция завитка? что-нибудь с '$ error = curl_error ($ ch);'? И что вы имеете в виду, не работает? Вы получаете какую-либо информацию? –

+0

Да, функция curl succesfull, я не получаю ошибок. Ошибка $ empty. информация о том, что очень неприятно – apero

Смежные вопросы