【问题标题】:search posts with blogger api v3 in specific date range在特定日期范围内使用 blogger api v3 搜索帖子
【发布时间】:2018-02-15 21:29:25
【问题描述】:

如果我们想使用博客 API v3 搜索谷歌博客帖子,那么我们应该遵循 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 搜索某个日期及之后的帖子,但仍然无法正常工作。 URL 编码正确完成,因为我使用标签搜索(如 q=label:symbols|label:fonts)进行了测试,以搜索包含标签 symbols 或标签 fonts 的帖子,它工作得很好。

【问题讨论】:

  • 更新后的字段用什么?

标签: blogger blogger-dynamic-views


【解决方案1】:

经过一番搜索,我终于发现答案就在那里,但我没有仔细看。当我们要搜索特定日期范围内的帖子时,我们不查询search:posts 操作,而是查询list:posts 操作。例如,如果我们想从October 2, 2016 搜索到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 来实现的,第二个是通过使用maxResultspageToken 来实现的。

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

<!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>

如果帖子总数大于示例中的maxResults 10,则将发送nextPageTokenresponse.nextPageToken 可以检索并存储在下一个url查询中。

https://www.googleapis.com/blogger/v3/blogs/35636577512/posts?startDate=2008-10-02T00:00:00z&amp;endDate=2016-09-06T17:30:00z&amp;pageToken=dfgdfRtdfdf234rT&amp;fetchBodies=false&amp;callback=handleResponse&amp;key=RTza3456gfhf_Q345fgh'

【讨论】:

    猜你喜欢
    • 2011-08-12
    • 1970-01-01
    • 2014-06-25
    • 1970-01-01
    • 2014-11-01
    • 1970-01-01
    • 2015-12-01
    • 1970-01-01
    • 2017-10-25
    相关资源
    最近更新 更多