2009-10-13 7 views
4

J'ai un blog sur google (blogger) et je veux obtenir des données json de sites externes afin de les intégrer dans mes posts. J'ai utilisé la bibliothèque jquery et la fonction getJson pour récupérer les données json mais rien n'est retourné.blogger jquery call

Blogger restreindre les appels externes jquery? Avoir une idée? Merci

+0

Plz poster votre code – jantimon

+0

Vous ne pouvez pas faire interdomaine appels AJAX – ErsatzRyan

Répondre

7

Vous pouvez, consultez http://code.google.com/apis/gdata/docs/json.html pour information. Mais, regardez le mode JSONP utilisé par jquery et vous verrez comment le faire. Par exemple, le code suivant montre comment obtenir un flux de commentaires de l'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); 
    } 
} 
+1

Cela fonctionne vraiment bien. Devrait être accepté comme réponse. – UpHelix

+1

Bonne réponse. Si seulement quelqu'un pouvait le marquer comme correct ... – kelloti

4

Voici le code que j'utilise inline mon blog entier. Pas bon pour le référencement car google ne le verra jamais, mais tout ce que je tenais à faire était de rendre la page du blog à moitié décent.

<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> 
+0

+1, court et direct. Je ne m'attendais pas à ce que Google prenne toujours en charge l'API 1.0. – Blazemonger

Questions connexes