Блоггер JQuery Call - PullRequest
       8

Блоггер JQuery Call

4 голосов
/ 13 октября 2009

У меня есть блог на Google (блоггер), и я хочу получать данные JSON с внешнего веб-сайта, чтобы интегрировать его в свои сообщения. Я использовал библиотеку jquery и функцию getJson для извлечения данных json, но ничего не возвращается.

Blogger ограничивает любые внешние вызовы jquery? Есть идеи? Спасибо

Ответы [ 2 ]

7 голосов
/ 18 сентября 2010

Вы можете проверить http://code.google.com/apis/gdata/docs/json.html для информации. Но посмотрите на режим JSONP, используемый jquery, и вы увидите, как это сделать. Например, в следующем коде показано, как получить фид комментариев из API Blogger:

    var BloggerImporter = {

    getComments : function(username){

        var feedURL = "http://"+username+".blogspot.com/feeds/comments/default";

        var paras = {
            alt : 'json-in-script'
        };

        $.ajax({
            url: feedURL,
            type: 'get',
            dataType: "jsonp",
            success: BloggerImporter.onGotCommentData,
            data: paras
        });


    },

    /**
     * Parse the JSON comment data returned by the Google Blogger API
     */
    onGotCommentData : function(data){

        var feed = data.feed;
        var entries = feed.entry || [];
        var txt = "";

        for (var i = 0; i < entries.length; ++i) {
            var entry = entries[i];
            var title = entry.title.$t;
            txt += title;
        }

        alert(txt);
    }
}
4 голосов
/ 01 июля 2011

Вот код, который я использую для вставки всего моего блога. Не очень хорошо для SEO, так как Google никогда этого не увидит, но все, о чем я действительно беспокоился, - это сделать страницу блога наполовину приличной.

<div id="blogContainer"></div>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
$.ajax({
    url: 'http://www.blogger.com/feeds/<your blogger ID>/posts/default?alt=json-in-script',
    type: 'get',
    dataType: "jsonp",
    success: function(data){
        for (var i = 0; i < data.feed.entry.length; i++){
            $('#blogContainer').append('<div class="blogItem"><h2>' 
                   + data.feed.entry[i].title.$t + '<span class="author"> by ' 
                   + data.feed.entry[i].author[0].email.$t + '</span></h2>' 
                   + data.feed.entry[i].content.$t 
                   + '<br clear="all"></div>');
        }
    }
});
</script>
...