在特定日期范围内搜索blogger api v3的帖子

时间:2017-09-07 08:16:48

标签: blogger blogger-dynamic-views

如果我们想使用博客API v3搜索Google博客帖子,那么我们应该按照here中的文档进行操作。但是,我们如何在查询参数q中集成日期范围?我试过了q=startDate:2016-01-01:T00:00:00+endDate:2017-09-05:T00:00:00,但它没有用。

我还尝试使用q=startDate:2016-01-01:T00:00:00q=startDate:"2016-01-01:T00:00:00"q=startDate:2016-01-01来搜索特定日期之后的帖子,但仍然无效。网址编码已正确完成,因为我使用标签搜索q=label:symbols|label:fonts进行搜索,以搜索包含标签symbols或标签fonts的帖子,并且效果很好。

1 个答案:

答案 0 :(得分:0)

经过一番搜索,我终于发现答案在那里,但我没有仔细看。当我们想要搜索特定日期范围内的帖子时,我们不会查询search:posts操作,而是查询list:posts操作。例如,如果我们要从October 2, 2016搜索到September 7, 2017,我们会发送以下格式的请求网址:

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来实现的,第二个是通过使用maxResultspageToken来实现的。

封装上述注释的简化脚本可以是:



<!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>
&#13;
&#13;
&#13;

如果帖子总数大于示例中10的maxResults,则会发送nextPageTokenresponse.nextPageToken可以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'检索并存储在下一个网址查询中。< / p>

Matrix #1 3 3 1 2 0 1 2 1 1 2 3 Matrix #2 3 3 0 1 2 1 1 2 3 1 2 Answer: 2 Biggest common subsquare is: 1 2 1 2