如何使用JavaScript循环使用blogger API检索所有帖子

时间:2018-01-09 15:43:29

标签: javascript json api google-api blogger

我正在尝试使用javascript循环使用Blogger API获取所有博客帖子的列表。我在StackOverflow中找到了一个解决方案。但那对我不起作用。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script>
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/5039479718685240371/posts?callback=handleResponse&key=AIzaSyDxfWmXTRnO5yIp25NvuUEBWKSa_5mqjHA"></script>

运行此代码时出现

以下错误:{ "message": "Uncaught ReferenceError: $ is not defined", "filename": "https://stacksnippets.net/js", "lineno": 17, "colno": 5 }

1 个答案:

答案 0 :(得分:1)

我对您的代码进行了一些试验和错误,您注意到的第一个问题是通过包含jQuery库来解决的。

您可以使用ajax获取数据,而不是将其包含在脚本标记中。 jQuery将为您注册并调用回调函数。

其余的工作。这是一个例子。我现在还建议你改变你的钥匙。

$.ajax("https://www.googleapis.com/blogger/v3/blogs/5039479718685240371/posts?callback=handleResponse&key=AIzaSyDxfWmXTRnO5yIp25NvuUEBWKSa_5mqjHA")

function handleResponse(response) {
  //var post_number = Object.keys(response.items).length; //number of posts
  for (i = 0; i < response.items.length; i++) {
    var titleHtml = '<div id="post' + (i + 1) + '" class="post"><p>' + response.items[i].title + '</p></div>';
    $('#content').append(titleHtml);
  }
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="content"></div>