Microsoft Outlook API выдает ошибку 404

Я пытаюсь получить контакты пользователя через Outlook контакты REST API. Я успешно получил токен доступа, но когда я пытаюсь получить контакты, я получаю ошибку 404.

Это отправленный URL

https://outlook.office.com/api/v1.0/me/contacts?%24select=GivenName%2CSurname%2CEmailAddresses%24orderby=GivenName%24top=10

и заголовки

Агент пользователя: php-tutorial / 1.0
Авторизация: Носитель ---- токен здесь -----
Принять: приложение / JSON
client-request-id: guid здесь
return-client-request-id: true
X-AnchorMailbox: user_email

Это код, который я взял прямо с Учебник Microsoft

публичная статическая функция makeApiCall ($ access_token, $ user_email, $ method, $ url, $ payload = NULL)
{
// Генерируем список заголовков для отправки всегда.
$ headers = array (
«User-Agent: php-tutorial / 1.0», // Передача заголовка User-Agent является наилучшей практикой.
"Authorization: Bearer". $ Access_token, // Всегда нужен наш токен авторизации!
"Accept: application / json", // Всегда принимать ответ JSON.
"client-request-id:" .self :: makeGuid (), // Пометить каждый новый запрос новым GUID.
"return-client-request-id: true", // Сказать серверу включить наш GUID идентификатора запроса в ответ.
"X-AnchorMailbox:". $ User_email // Электронная почта пользователя провайдера для оптимизации маршрутизации вызова API
);

$ curl = curl_init ($ url);

switch (strtoupper ($ method)) {
кейс "GET":
// Ничего не делать, GET используется по умолчанию и не нуждается в
// дополнительные заголовки.
error_log ("Doing GET");
перерыв;
кейс "POST":
error_log ("Doing POST");
// Добавить заголовок Content-Type (ВАЖНО!)
$ headers [] = "Content-Type: application / json";
curl_setopt ($ curl, CURLOPT_POST, true);
curl_setopt ($ curl, CURLOPT_POSTFIELDS, $ payload);
перерыв;
кейс "PATCH":
error_log ("Doing PATCH");
// Добавить заголовок Content-Type (ВАЖНО!)
$ headers [] = "Content-Type: application / json";
curl_setopt ($ curl, CURLOPT_CUSTOMREQUEST, "PATCH");
curl_setopt ($ curl, CURLOPT_POSTFIELDS, $ payload);
перерыв;
кейс "DELETE":
error_log ("Doing DELETE");
curl_setopt ($ curl, CURLOPT_CUSTOMREQUEST, "DELETE");
перерыв;
дефолт:
error_log ("НЕВЕРНЫЙ МЕТОД:". $ метод);
выход;
}

curl_setopt ($ curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt ($ curl, CURLOPT_HTTPHEADER, $ headers);
$ response = curl_exec ($ curl);
error_log ("curl_exec done.");

$ httpCode = curl_getinfo ($ curl, CURLINFO_HTTP_CODE);
error_log ("Запрос возвращен статус". $ httpCode);
if ($ httpCode> = 400) {
возвращаемый массив ('errorNumber' => $ httpCode,
'error' => 'Запрос вернул ошибку HTTP'. $ httpCode);
}

$ curl_errno = curl_errno ($ curl);
$ curl_err = curl_error ($ curl);
if ($ curl_errno) {
$ msg = $ curl_errno. ":". $ curl_err;
error_log ("CURL вернул ошибку:". $ msg);
curl_close ($ завиток);
возвращаемый массив ('errorNumber' => $ curl_errno,
'error' => $ msg);
}
еще {
error_log ("Response:". $ response);
curl_close ($ завиток);
return json_decode ($ response, true);
}
}

Может кто-нибудь сказать, что я сделал не так?

0

Решение

Ошибка, которую вы видите (MailboxNotEnabledForRESTAPI) означает, что ваш почтовый ящик Outlook.com еще не был включен для API. К сожалению, нет настроек, которые вы можете изменить, чтобы включить их самостоятельно. Мы включаем почтовые ящики партиями, поэтому для этого конкретного почтового ящика вам просто нужно подождать, пока он не будет включен.

Если вы хотите получить тестовую учетную запись, чтобы получить бесплатную пробную версию Office 365, или вы можете отправить нам электронное письмо по адресу [email protected], чтобы запросить предварительный просмотр учетной записи Outlook.com для разработчика. Для получения полной информации см. Требования к учетной записи раздел в https://dev.outlook.com/RestGettingStarted.

1

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

Других решений пока нет …

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