Я могу вытащить одну запись за один раз из блога с помощью JQuery:
<div id="content"></div>
<script>
function handleResponse(response) {
$("#content").html("<h2>" + response.title + "</h2>" + "<p>" + response.content + "</p>")
//document.getElementById("content").innerHTML += "<h2>" + response.title + "</h2>" + response.content;
}
</script>
<script
src="https://www.googleapis.com/blogger/v2/blogs/YourBlogID/posts/3616509663895350385?callback=handleResponse&key=YourAPIKey">
</script>
Когда я меняю вызов, чтобы получить весь БЛОГ, я получаю "undefined"...
<script src="https://www.googleapis.com/blogger/v2/blogs/YourBlogID/posts?callback=handleResponse&key=YourAPIKey">
</script>
Я просто хочу, чтобы сообщение NEWEST появилось на странице автоматически, вместо того чтобы идти и переключаться с BlogID каждый раз.
→ --thanks
Это связано с "недокументированным" изменением в Blogger API, который до сих пор не обновлялся в их документации по API (например, эта страница по- прежнему отображает свойство "content" как часть набора результатов по умолчанию при вызове /posts
). Вероятно, это было сделано в какой-то момент, чтобы уменьшить размер ответа по вызову по умолчанию; они просто не сделали большой работы, позволяя разработчикам это знать.
Решение состоит в том, чтобы просто добавить fetchBodies=true
в ваш вызов API; это гарантирует, что свойство content
возвращается для каждого сообщения. Пример:
<script src="https://www.googleapis.com/blogger/v2/blogs/YourBlogID/posts?callback=handleResponse&key=RemovedForSecurity&fetchBodies=true"></script>
posts
без идентификатора возвращает все посты, результирующий JSON имеет другую структуру (то есть теперь есть родительский объект с массивом постов). Ваша проблема сейчас - не получение данных, это анализ JSON; Вы пробовалиresponse.items[0].content
чтобы вытащить контент для нового поста?