2017-09-07 43 views
0

如果我們想要使用博客API API v3搜索google博客帖子,那麼我們應該按照here中的文檔。但是我們如何在查詢參數q中整合一個日期範圍呢?我試過q=startDate:2016-01-01:T00:00:00+endDate:2017-09-05:T00:00:00但它不起作用。在特定日期範圍內搜索博客api v3

我也試過從某個日期開始搜索帖子,使用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的帖子,它工作得很好。

回答

0

經過一番搜索,我終於發現答案在那裏,但我沒有仔細看。當我們要搜索特定日期範圍內的帖子時,我們不會查詢search:posts操作,而是查詢list:posts操作。例如,如果我們想要搜索October 2, 2016September 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是當成功地接收響應這就是所謂的回調函數。上述網址查詢無效,因爲我們也收到帖子的正文文字,這會影響效果。還必須使用分頁。第一個通過設置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>

如果柱的總數大於它是10的例子中的的maxResults,則nextPageToken將更大被髮送,可以通過response.nextPageToken檢索並存儲在下一個url查詢中。

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'