У меня есть образец PHP OneNote API (спасибо jamescro!), Работающий со всеми примерами POST, но нет примера GET, и мне не удалось собрать собственный код, который работает. Вот что я пробовал без успеха:
// Use page ID returned by POST
$pageID = '/0-1bf269c43a694dd3aaa7229631469712!93-240BD74C83900C17!600';
$initUrl = URL . $pageID;
$cookieValues = parseQueryString(@$_COOKIE['wl_auth']);
$encodedAccessToken = rawurlencode(@$cookieValues['access_token']);
$ch = curl_init($initUrl);
curl_setopt($ch, CURLOPT_URL, $initUrl); // Set URL to download
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
if (! $response === false) {
curl_close($ch);
echo '<i>Response</i>: '. htmlspecialchars($response);
}
else {
$info = curl_getinfo($ch);
curl_close($ch);
echo '<i>Error</i>: ';
echo var_export($info);
}
Он просто возвращает "Ошибка" с информационным дампом. Что я делаю не так?
Решенный: Как отметил Джей Онгг, "необходимы необходимые заголовки". После добавления более подробной проверки ошибок и получения кода ответа 401 я добавил:
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type:text/html\r\n".
"Authorization: Bearer ".$encodedAccessToken));
... и может получить доступ к запрошенной странице.
без информации о конкретной ошибке. Я не уверен, в какую проблему вы попадаете. Попробуйте посмотреть плагин PHP Wordpress здесь: https://github.com/wp-plugins/onenote-publisher/blob/master/api-proxy.php
посмотрите, что отправлено на wp_remote_get - необходимы необходимые заголовки.
Также убедитесь, что у вас есть область "office.onenote", когда вы запрашиваете токен доступа.
Если вам нужна дополнительная помощь, добавьте информацию о конкретном URL-адресе, который вы пытаетесь вызвать, а также о содержании ваших заголовков. Если у вас есть какие-либо ошибки, включите вывод.