1

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

它只是返回带有信息转储的“错误”。我究竟做错了什么?

4

2 回答 2

2

如果没有有关特定错误的信息,我不确定您遇到了什么问题。尝试在这里查看 PHP Wordpress 插件:https ://github.com/wp-plugins/onenote-publisher/blob/master/api-proxy.php

查看发送到 wp_remote_get 的内容 - 需要一些必要的标头。

当您请求访问令牌时,还要确保您具有“office.onenote”范围。

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

于 2015-08-25T05:16:47.550 回答
2

已解决:正如 Jay Ongg 指出的那样,“需要一些必要的标头”。添加更详细的错误检查并获得 401 响应代码后,我添加了:

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

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

于 2015-08-27T03:55:44.863 回答