Доступ к календарю помещений в API Office 365 запрещен

Я пишу приложение на PHP с использованием API-интерфейса REST Office 365, которое выводит список всех событий для комнаты собраний. Я авторизовал приложение и могу получить список событий комнаты, перейдя по URL через мой браузер, однако, как только я пытаюсь сделать запрос через CURL, я получаю следующий ответ.

{"error":{"code":"ErrorAccessDenied","message":"Access is denied. Check credentials and try again."}}

Мой PHP выглядит следующим образом

public function getCalendarEvents($token, $calendar) {

$url = "https://outlook.office365.com/api/v1.0/users/$calendar/events";
//$url = "https://outlook.office365.com/api/v1.0/me/events";

$headers = array('Authorization: Bearer ' . $token, 'Content-Type: application/json', 'Accept:application/json');

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_VERBOSE, true);
curl_setopt($ch, CURLINFO_HEADER_OUT, true);

$output=curl_exec($ch);

$info = curl_getinfo($ch);
//print_r($info['request_header']);

curl_close($ch);
print_r($output);
}

Я попытался передать адрес электронной почты комнаты, так как

$url = "https://outlook.office365.com/api/v1.0/users/[email protected]/events";

а также

$url = "https://outlook.office365.com/api/v1.0/Users('[email protected]')/Events";

Ни одна из которых не работает. Я могу отозвать все события календаря для себя, используя

$url = "https://outlook.office365.com/api/v1.0/me/events";

Я являюсь администратором портала Office 365, а также имею полные права доступа к комнате. В своем исследовании я наткнулся этот Так что ответьте, но снятие отметки с этой опции в Azure не имеет значения.

Похоже, об очень похожей проблеме Вот

0

Решение

Сегодня мы не поддерживаем аутентифицированного пользователя, который получает доступ к почте, календарю или контактам другого пользователя с помощью OAuth. Вот почему ваш запрос не выполняется, когда вы получаете календарь конференц-зала, но работаете для своего собственного календаря. Этот запрос работает с использованием браузера, поскольку вы используете обычную аутентификацию, и мы не рекомендуем это для вашего приложения. Если вы хотите попробовать запросы с помощью OAuth, вы можете сделать это с помощью нашего Песочница OAuth.

Хорошей новостью является то, что мы очень близки к тому, чтобы выпустить поддержку потока учетных данных клиента OAuth, который позволит приложению с согласия администратора клиента получить доступ к любому почтовому ящику в клиенте. Поскольку вы являетесь администратором арендатора, как только мы выпустим эту функцию, вы сможете авторизовать приложение для доступа к календарям конференц-залов вашего арендатора. Так что, пожалуйста, следите за новостями в ближайшие недели.

[ОБНОВИТЬ]: Поддержка сервисных учетных записей теперь доступна. Пожалуйста, смотрите наш объявление в блоге для более подробной информации и дайте нам знать, если у вас есть какие-либо вопросы.

4

Другие решения

Вы должны отправить свой секретный код.
И если попытка вашей программы много раз может блокироваться как спамер.

Проверьте это:
http://support2.microsoft.com/kb/2630976

Чтобы решить эту проблему, сбросьте пароль пользователя. Для этого выполните следующие действия:
Откройте веб-браузер, перейдите на портал Office 365 (https://portal.office.com), а затем войдите в систему, используя учетные данные, срок действия которых истек.
При появлении запроса введите новый пароль Office 365 для пользователя. Убедитесь, что пароль соответствует критериям для Office 365.

0

По вопросам рекламы [email protected]