2016-09-03 5 views
0

Ich habe das folgende Skript, um die Menge von Leuten aus einer Facebook-Seite zu erhalten:Javascript Uncaught Typeerror: Facebook Like Zähler

$("#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'); 
    }); 
}); 

Beim Ausführen des Skripts ich die folgende Fehlermeldung erhalten:

Uncaught TypeError: Cannot read property 'like_count' of undefined

Ich habe das Internet nach einer Lösung gesucht, aber ich kann keine finden, die dieses Problem löst. Ich hoffe, dass mir jemand helfen kann!

+1

Daten [0] sind nicht definiert. –

+0

Verwenden Sie einen Debugger; Setzen Sie einen Breakpoint bei 'container.text (data [0] .like_count' und schauen Sie' data' an, um zu sehen, was es ist, oder 'console.log (data)' und sehen Sie, welche Daten Sie in der Konsole erhalten. Die eine oder andere Art von Daten [0] ist undefiniert Im Allgemeinen bedeutet dies, dass Sie nicht das richtige Verständnis für die Daten haben, die Sie von Ihrem API-Aufruf erhalten, oder Sie führen keine Gültigkeitsprüfung durch Auf diese "Daten", die Sie tun sollten. – Makyen

+0

Sind Sie sich bewusst "[Ab 8. August 2016 ist FQL nicht mehr verfügbar und kann nicht abgefragt werden. Um Ihre App zu migrieren, verwenden Sie das API Upgrade Tool, um die Graph API zu sehen Anrufe können Sie stattdessen machen.] (https://developers.facebook.com/docs/reference/fql/) " – Makyen

Antwort

1

FQL veraltet ist, dann ist dies der richtige API, die gerne von einer Seite zu bekommen:

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

Sie können es testen in der API-Explorer: https://developers.facebook.com/tools/explorer/?method=GET&path=page-id%3Ffields%3Dfan_count&version=v2.7

Beachten Sie, dass dies ein Access-Token benötigt Daher sollten Sie diese Clientseite nicht mit einem App Access Token ausführen. Sie sollten auch überlegen, das Ergebnis zwischenzuspeichern, um API-Limits nicht zu treffen, wenn viele Benutzer vorhanden sind.

Mehr Informationen über Tokens:

0

Dies bedeutet, dass data[0]undefined ist, was bedeutet, dass Sie nicht auf das Attribut like_count zugreifen können.

Versuchen Sie, das Objekt data anzuzeigen, um seine Attribute/Elemente anzuzeigen, die Sie anzeigen/verwenden können.

+0

True ... muss schlafen, thx –

+1

Da war ich, ich weiß, wie das geht. – Makyen