【问题标题】:Listing all posts with Blogger API使用 Blogger API 列出所有帖子
【发布时间】:2015-06-04 15:10:13
【问题描述】:

我正在尝试使用 Blogger API v3 列出所有博客文章:

<script type="text/javascript">
function handleResponse(response) {
  var post_number  = Object.keys(response.items).length; //number of posts
  for (i=0; i<post_number; i++) {
    $('#content').append('<div id="post' + (i+1) + '" class="post"><p></p></div>');
    $('.post p').html(Object.keys(response.items[i].title));
  }
}
</script>
<script src="https://www.googleapis.com/blogger/v3/blogs/1961645108677548855/posts?callback=handleResponse&key=AIzaSyAJESQB3ddltUcDbZif3LUnX-Gzr18tBRg"></script>

这确实将 3 个 div(因为 3 个帖子)附加到我的内容 div。但是每个 div 的内容是:

<p>
   "1"
   "2"
   "3"
   "4"
   "5"
</p>

我不知道为什么,虽然我认为title 是items[] 的一个属性。 有什么解决办法或线索吗?

感谢您的回答!

【问题讨论】:

  • 这和 CSS 有什么关系?
  • 没什么,我的错,对不起

标签: javascript json api blogger


【解决方案1】:

您应该删除 Object.keys() 并尝试以下操作:

<script type="text/javascript">
function handleResponse(response) {
  var post_number  = Object.keys(response.items).length; //number of posts
  for (i=0; i<post_number; i++) {
    $('#content').append('<div id="post' + (i+1) + '" class="post"><p></p></div>');
    $('.post p').html(response.items[i].title);
  }
}
</script>
<script src="https://www.googleapis.com/blogger/v3/blogs/1961645108677548855/posts?callback=handleResponse&key=AIzaSyAJESQB3ddltUcDbZif3LUnX-Gzr18tBRg"></script>

在你的情况下你不应该使用Object.keys()

【讨论】:

  • @tafelrunde 很高兴能帮到你!
【解决方案2】:

您的请求未使用maxResults 参数,并且检索到的帖子数量有限,因此我建议使用Google JavaScript Client Library - Blogger API 并递归检索博客的所有帖子。

参见以下示例:

  <script>
  function renderResults(response) {
    if (response.items) {
      for (var i = 0; i < response.items.length; i++) {
        //do whatever you want with the posts of your blog
      }      
    }
    if(response.nextPageToken) {
      var blogId = 'XXX Your blogId XXX';
      var request = gapi.client.blogger.posts.list({
        'blogId': blogId,
        'pageToken': response.nextPageToken,
        'maxResults': 100,
      });
      request.execute(renderResults);
    }
  }
  function init() {
    gapi.client.setApiKey('XXX Get your API Key from https://code.google.com/apis/console XXX');
    gapi.client.load('blogger', 'v3', function() {
        var blogId = 'XXX Your blogId XXX';
        var request = gapi.client.blogger.posts.list({
          'blogId': blogId,
          'maxResults': 100,
        });
        request.execute(renderResults);        
    });
  }
  </script>
  <script src="https://apis.google.com/js/client.js?onload=init"></script>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-05
    • 2017-07-25
    • 2014-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多