经过一番搜索,我终于发现答案就在那里,但我没有仔细看。当我们要搜索特定日期范围内的帖子时,我们不查询search:posts操作,而是查询list:posts操作。例如,如果我们要搜索 from October 2, 2016
to,September 7, 2017
我们会发送以下形式的请求 url:
https://www.googleapis.com/blogger/v3/blogs/{blogID}/posts?
startDate=2016-10-02T00:00:00z&endDate=2017-09-07T00:00:00z
&callback=handleResponse&key={our_received_key}
handleResponse
是成功接收响应时调用的回调函数。上述 url 查询无效,因为我们还会收到帖子的正文,这会影响性能。还必须使用分页。第一个是通过设置来实现的fetchBodies=false
,第二个是通过使用maxResults
and来实现的pageToken
。
封装上述注释的简化脚本可以是:
<!DOCTYPE html>
<html>
<head>
<title>Blogger API Example</title>
</head>
<body>
<div id="content"></div>
<script>
function handleResponse(response) {
var post = "";
for (var i in response.items)
{
document.getElementById("content").innerHTML += "<a href=\"" + response.items[i].url +
"\">" + response.items[i].title + "</a>" + "<br/>";
}
}
</script>
<script src='https://www.googleapis.com/blogger/v3/blogs/35636577512/posts?startDate=2016-10-02T00:00:00z&endDate=2017-09-07T00:00:00z&maxResults=10&fetchBodies=false&callback=handleResponse&key=RTza3456gfhf_Q345fgh'></script>
</body>
</html>
如果帖子总数大于示例中为 10 的 maxResults,nextPageToken
则将发送一个可以由response.nextPageToken
下一个 url 查询检索并存储的 a。
https://www.googleapis.com/blogger/v3/blogs/35636577512/posts?startDate=2008-10-02T00:00:00z&endDate=2016-09-06T17:30:00z&pageToken=dfgdfRtdfdf234rT&fetchBodies=false&callback=handleResponse&key=RTza3456gfhf_Q345fgh'