如何在 OneNote API 中使用 PHP 中的 GET?

How to use GET in PHP with OneNote API?

我有 OneNote API PHP Sample(感谢 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);
}

只是 returns 'Error' 带有信息转储。我做错了什么?

没有关于具体错误的信息,我不确定您遇到的是什么问题。尝试在此处查看 PHP Wordpress 插件:https://github.com/wp-plugins/onenote-publisher/blob/master/api-proxy.php

查看发送到 wp_remote_get 的内容 - 需要 headers。

另外请确保您在请求访问令牌时具有范围 "office.onenote"。

如果您需要更多帮助,请添加有关您尝试呼叫的特定 URL 的信息,以及您的 headers 的内容。如果您有任何错误,请包括输出。

已解决: 正如 Jay Ongg 指出的那样,"there are necessary headers that are needed"。 添加更详细的错误检查并获得 401 响应代码后,我添加了:

curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type:text/html\r\n".
"Authorization: Bearer ".$encodedAccessToken));

...并且可以访问请求的页面。