2012-01-19 26 views
5

tôi đang cố gắng tính số lượng twitter, facebook và google với các yêu cầu jquery.getJSON bắt đầu từ số guide by John Dyer tuyệt vời về cách thực hiện tương tự với C# và PHPBắt Đếm cho các liên kết Twitter, các lượt thích trên Facebook và Google +1 với Jquery và AJAX

thực twitter và facebook công trình nhưng google không ... phản ứng json là:

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

đây là mã:

<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

bạn đã chuyển một thông số không hợp lệ ở đâu đó. doublecheck một số ví dụ những gì bạn thấy cho google + API và chắc chắn rằng bạn định dạng nó một cách chính xác – Evan

Trả lời

3

bạn không thể m ake yêu cầu miền chéo tới máy chủ clients6.google.com. bạn có thể thấy điều này trong các trình duyệt giao diện điều khiển của bạn nếu bạn bỏ qua phần này:

+ 'callback=?' 

twitter và facebook cho phép những yêu cầu này ...

+0

cảm ơn eikes bạn đã đúng – alesmaru

1

Bạn chỉ cần một '&' trước khi 'gọi lại'? Tại thời điểm này có vẻ như bạn đang dán nó vào cuối khóa.

0

Hiện tại, không thể tính số lượng g + từ trang web của khách hàng. Bạn phải làm điều đó từ phía máy chủ. Đây là mã ruby ​​cho điều đó. Mã sau đây trả về số Google Plus của một trang là đối tượng 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

Lúc đầu, bạn phải tạo một tên người dùng của trang của bạn (xem dưới tên trang của bạn @username. Chỉ cần nhấp vào nó ...)

Sau đó goto https://developers.facebook.com/tools/explorer/ và nhận được một access token key

Sau đó, hãy viết một cái gì đó như thế đó

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'); 

công việc của nó cho tôi. Tôi không bao giờ sử dụng g + và twitter

Các vấn đề liên quan