2012-01-19 9 views
5

sto cercando di ottenere i conteggi per twitter, facebook e google con richieste jquery.getJSON a partire dal grande guide by John Dyer su come fare lo stesso con C# e PHPConteggi per i link di Twitter, Mi Piace e Google +1 con Jquery e AJAX

realtà Twitter e Facebook funziona ma google non ... la risposta jSON è:

{ 
    "error": { 
    "code": 400, 
    "message": "Required value: id", 
    "data": [ 
    { 
    "domain": "global", 
    "reason": "required", 
    "message": "Required value: id" 
    } 
    ] 
}, 
"id": "p" 
} 

ecco il codice:

<script type="text/javascript"> 
    function getfbcount(url){ 
    var fblikes; 
    $.getJSON('http://graph.facebook.com/?ids=' + url, function(data){; 
     fblikes = data[url].shares; 
     $('body').append('fb likes ' + fblikes); 
    }); 
    } 
    function gettwcount(url){ 
    var tweets; 
    $.getJSON('http://urls.api.twitter.com/1/urls/count.json?url=' + url + '&callback=?', function(data){ 
     tweets = data.count; 
     $('body').append('tweets ' + tweets); 
    }); 
    } 
    function getplusone(url){ 
    var plusones; 
    $.getJSON('https://clients6.google.com/rpc?key=AIzaSyCKSbrvQasunBoV16zDH9R33D88CeLr9gQ' + 'callback=?', 
     { 
      "method":"pos.plusones.get", 
      "id":"p", 
      "params":{ 
       "nolog":true, 
       "id":url, 
       "source":"widget", 
       "userId":"@viewer", 
       "groupId":"@self" 
      }, 
      "jsonrpc":"2.0", 
      "key":"p", 
      "apiVersion":"v1" 
     }, 
     function(data){   
     plusones = data.count; 
     $('body').append('+1 ' + plusones); 
    }); 
    } 
    $(document).ready(function($){ 
     var url = "http://www.google.com" 
     getfbcount(url); 
     gettwcount(url); 
     getplusone(url); 
    }); 
    </script> 
+0

hai passato un parametro non valido da qualche parte. Doppio controllo su alcuni esempi di ciò che vedi per google + API e assicurati di averlo formattato correttamente – Evan

risposta

3

non si può m ake richieste cross domain al server clients.google.com. si può vedere questo nella console browser se si lascia fuori questa parte:

+ 'callback=?' 

twitter e facebook permettono queste richieste ...

+0

grazie a te che avevi ragione – alesmaru

1

Avete solo bisogno di un '&' prima 'richiamata'? Al momento sembra che lo stai attaccando alla fine della chiave.

0

A partire da ora non è possibile ottenere il conteggio g + dal sito del cliente. Devi farlo dal lato server. Ecco il codice rubino per questo. Il codice successivo restituisce il conteggio di Google Plus di una pagina come oggetto json.

def get_gplus_count 
    google_api_url = 'https://plusone.google.com/_/+1/fastbutton?url=' 
    page_url = 'http://www.linkOfThePageWhoseGPlusCountYouWant.net' 
    g_count_div = '#aggregateCount' 
    g_plus_count = "-1" 
    begin 
    content = Nokogiri::HTML(open(google_api_url + page_url).read) 
    g_plus_count = content.css(g_count_div).text 
    rescue => e 
    end 

    render :json => { :g_plus_count => g_plus_count } 
end 
0

In un primo momento si deve creare un nome utente della pagina (vedi sotto il nome della pagina @nomeutente. Basta cliccare esso ...)

Poi goto https://developers.facebook.com/tools/explorer/ e ottenere un token di accesso chiave

Quindi scrivere qualcosa del genere

function facebookLikesCount(access_token, pageusername) 
{ 
var url = "https://graph.facebook.com/"+pageusername+"?fields=likes&access_token="+access_token+""; 

$.getJSON(url,function(json){ 
alert(json.likes); 
}); 
} 

facebookLikesCount('your accesstoken', 'pageusername'); 

il suo lavoro per me. Non uso mai g + e twitter

Problemi correlati