2014-11-28 2 views
-3

Немного сложной проблемы.Получить данные Blogger.com JSON в формате html?

Я искал способы получения данных в приложении PhoneGap, поэтому информация в приложении может быть изменена без необходимости обновления через appstore при каждом изменении.

После многих оглядевшихся я обнаружил, что у Blogger.com есть выход JSON, который я ДУМАЮ, что могу использовать и извлекать данные в приложение.

Страницы PhoneGap должны быть .html, поэтому я не могу использовать страницу .php или .net для получения данных.

Im сказали, что если я могу получить данные в формате JSON можно использовать JS, чтобы получить данные из корма и использовать его ... так ......

Ive создали тестовый блог и с помощью этого URL я могу получить фид JSON:

http://ironheartuk123.blogspot.com/feeds/posts/default?alt=json-in-script&callback=myFunc

Это то, что питающие выходы:

// API callback 
myFunc({"version":"1.0","encoding":"UTF-8","feed":{"xmlns":"http://www.w3.org/2005/Atom","xmlns$openSearch":"http://a9.com/-/spec/opensearchrss/1.0/","xmlns$blogger":"http://schemas.google.com/blogger/2008","xmlns$georss":"http://www.georss.org/georss","xmlns$gd":"http://schemas.google.com/g/2005","xmlns$thr":"http://purl.org/syndication/thread/1.0","id":{"$t":"tag:blogger.com,1999:blog-5655651846573938667"},"updated":{"$t":"2014-11-28T02:41:47.924-08:00"},"title":{"type":"text","$t":"test"},"subtitle":{"type":"html","$t":""},"link":[{"rel":"http://schemas.google.com/g/2005#feed","type":"application/atom+xml","href":"http:\/\/ironheartuk123.blogspot.com\/feeds\/posts\/default"},{"rel":"self","type":"application/atom+xml","href":"http:\/\/www.blogger.com\/feeds\/5655651846573938667\/posts\/default?alt=json-in-script"},{"rel":"alternate","type":"text/html","href":"http:\/\/ironheartuk123.blogspot.com\/"},{"rel":"hub","href":"http://pubsubhubbub.appspot.com/"}],"author":[{"name":{"$t":"Mark Latham"},"uri":{"$t":"http:\/\/www.blogger.com\/profile\/16519153095270236038"},"email":{"$t":"[email protected]"},"gd$image":{"rel":"http://schemas.google.com/g/2005#thumbnail","width":"16","height":"16","src":"http:\/\/img2.blogblog.com\/img\/b16-rounded.gif"}}],"generator":{"version":"7.00","uri":"http://www.blogger.com","$t":"Blogger"},"openSearch$totalResults":{"$t":"2"},"openSearch$startIndex":{"$t":"1"},"openSearch$itemsPerPage":{"$t":"25"},"entry":[{"id":{"$t":"tag:blogger.com,1999:blog-5655651846573938667.post-5882120439717312684"},"published":{"$t":"2014-11-28T02:41:00.003-08:00"},"updated":{"$t":"2014-11-28T02:41:47.937-08:00"},"title":{"type":"text","$t":"Test post 2"},"content":{"type":"html","$t":"Test post 2"},"link":[{"rel":"replies","type":"application/atom+xml","href":"http:\/\/ironheartuk123.blogspot.com\/feeds\/5882120439717312684\/comments\/default","title":"Post Comments"},{"rel":"replies","type":"text/html","href":"http:\/\/ironheartuk123.blogspot.com\/2014\/11\/test-post-2.html#comment-form","title":"0 Comments"},{"rel":"edit","type":"application/atom+xml","href":"http:\/\/www.blogger.com\/feeds\/5655651846573938667\/posts\/default\/5882120439717312684"},{"rel":"self","type":"application/atom+xml","href":"http:\/\/www.blogger.com\/feeds\/5655651846573938667\/posts\/default\/5882120439717312684"},{"rel":"alternate","type":"text/html","href":"http:\/\/ironheartuk123.blogspot.com\/2014\/11\/test-post-2.html","title":"Test post 2"}],"author":[{"name":{"$t":"Mark Latham"},"uri":{"$t":"http:\/\/www.blogger.com\/profile\/16519153095270236038"},"email":{"$t":"[email protected]"},"gd$image":{"rel":"http://schemas.google.com/g/2005#thumbnail","width":"16","height":"16","src":"http:\/\/img2.blogblog.com\/img\/b16-rounded.gif"}}],"thr$total":{"$t":"0"}},{"id":{"$t":"tag:blogger.com,1999:blog-5655651846573938667.post-8794205203420774123"},"published":{"$t":"2014-11-28T02:41:00.001-08:00"},"updated":{"$t":"2014-11-28T02:41:19.714-08:00"},"title":{"type":"text","$t":"Test Post 1"},"content":{"type":"html","$t":"Test post 1"},"link":[{"rel":"replies","type":"application/atom+xml","href":"http:\/\/ironheartuk123.blogspot.com\/feeds\/8794205203420774123\/comments\/default","title":"Post Comments"},{"rel":"replies","type":"text/html","href":"http:\/\/ironheartuk123.blogspot.com\/2014\/11\/test-post-1.html#comment-form","title":"0 Comments"},{"rel":"edit","type":"application/atom+xml","href":"http:\/\/www.blogger.com\/feeds\/5655651846573938667\/posts\/default\/8794205203420774123"},{"rel":"self","type":"application/atom+xml","href":"http:\/\/www.blogger.com\/feeds\/5655651846573938667\/posts\/default\/8794205203420774123"},{"rel":"alternate","type":"text/html","href":"http:\/\/ironheartuk123.blogspot.com\/2014\/11\/test-post-1.html","title":"Test Post 1"}],"author":[{"name":{"$t":"Mark Latham"},"uri":{"$t":"http:\/\/www.blogger.com\/profile\/16519153095270236038"},"email":{"$t":"[email protected]"},"gd$image":{"rel":"http://schemas.google.com/g/2005#thumbnail","width":"16","height":"16","src":"http:\/\/img2.blogblog.com\/img\/b16-rounded.gif"}}],"thr$total":{"$t":"0"}}]}}); 

блог должен сообщений Test Post 1 'и 'Test Post 2' - I» d хотел бы использовать J S в конечном итоге с чем-то вроде этого:

<div><!-- Data from test post 1--></div> 

<div><!-- Data from test post 2--></div> 

Мне нужен скрипт JS для извлечения данных и поместить в дивы? Возможное?!?!

+1

Пожалуйста, более конкретно. В общем, это возможно. Да, вам нужен JS, а техника blogspot предоставляет JSONP. Возможно, вы должны изучить что-то вроде jQuery и особенно в методе '' jQuery.getJSON' (http://api.jquery.com/jQuery.getJSON/). jQuery также предоставляет способы манипулирования html-страницей. Не стесняйтесь задавать более конкретный вопрос. – gregor

+0

Хорошо, я думал, что я был совершенно конкретным ;-) Мне нужен сценарий, который может получить данные JSON с URL-адреса (выше) и помещать контент из сообщений в блогах в Div-ы на HTML-странице. – MarkL

ответ

0

Это JS, что я наконец-то работать:

функция сообщений (JSON) {

// Get five recent posts 
    for (var i = 0; i < 2; i++) 
    { 
    var posturl; 
    // Get rel=alternate for truly post url 
    for (var j=0; j < json.feed.entry[i].link.length; j++) 
    { 
     if (json.feed.entry[i].link[j].rel == 'alternate') 
     { 
     posturl = json.feed.entry[i].link[j].href; 
     break; 
     } 
    } 
    // if the Blogger-feed is set to FULL, then the content is in the content-field 
    // if the Blogger-feed is set to SHORT, then the content is in the summary-field 
    if ("content" in json.feed.entry[i]) { 
     var postcontent = json.feed.entry[i].content.$t;} 
    else 
    if ("summary" in json.feed.entry[i]) { 
     var postcontent = json.feed.entry[i].summary.$t;} 
    else var postcontent = ""; 
    // strip off all html-tags 
    // reduce postcontent to 200 characters 
    if (postcontent.length > 200) postcontent = postcontent.substring(0,200); 
    // Get posts title 
    document.write("<div class='blogger-post' id='post" + json.feed.entry[i].id.$t.split('post')[1] + "'>" + postcontent + "</div>");  
    } 
    }  
Смежные вопросы