2016-09-03 11 views
0

我有以下腳本來從Facebook頁面獲取喜歡的量:的Javascript遺漏的類型錯誤:Facebook的贊反

$("#facebook-likes").each(function() { 
    var container = $(this); 
    var fburl = container.attr('rel'); 
    $.ajax({ 
    dataType: 'json', 
    type: 'GET', 
    url: 'https://api.facebook.com/method/fql.query', 
    data: { 
     query: 'SELECT like_count FROM link_stat WHERE url="' + fburl + '"', 
     format: 'json' 
    } 
    }).success(function (data) { 
    container.text(data[0].like_count + ' Likes'); 
    }); 
}); 

運行腳本時我收到以下錯誤:

Uncaught TypeError: Cannot read property 'like_count' of undefined

我在網上搜索了一個解決方案,但是我找不到解決這個問題的方法。我希望有人能幫助我!

+1

數據[0]是未定義的。 –

+0

使用調試器;在container.text(data [0] .like_count')處設置一個斷點,並查看'data'來查看它是什麼,或者查看console.log(data)'並查看控制檯中獲得的數據。一種方式,或另一種'data [0]'是未定義的。一般來說,這意味着您沒有正確理解您要從API調用中獲得的'data',或者您沒有執行有效性檢查在你應該做的''data'上你知道嗎 – Makyen

+0

你知道嗎[[截至2016年8月8日,FQL將不再可用,無法查詢。要遷移你的應用,請使用API​​升級工具查看Graph API調用你可以改爲。](https://developers.facebook.com/docs/reference/fql/)「 – Makyen

回答

1

FQL已被棄用,這是正確的API來獲取頁面的喜歡:https://developers.facebook.com/tools/explorer/?method=GET&path=page-id%3Ffields%3Dfan_count&version=v2.7

要知道,這需要一個訪問令牌:

https://graph.faebook.com/[page-id]?fields=fan_count 

您可以在API Explorer來測試它,所以你不應該用App Access Token來做那個客戶端。你也應該考慮緩存結果,如果有很多用戶,不要達到API限制。

關於令牌的更多信息:

0

這意味着data[0]undefined這意味着您無法訪問like_count屬性。

嘗試顯示data對象以查看其可以顯示/使用的屬性/元素。

+0

真的......需要睡覺,thx –

+1

在那裏,我知道那是怎麼回事。 – Makyen