wake-up-neo.com

Abrufen der Anzahl der Facebook-Likes / -Freigaben für eine bestimmte URL

Ich verwende die Facebook-API, um die Anzahl der "Gefällt mir"/"Teilen" für bestimmte URLs zu ermitteln. Das Seltsame ist, dass es ziemlich inkonsistent zu sein scheint, Ergebnisse zurückzugeben. Diese Seite gibt beispielsweise die folgenden Ergebnisse zurück:

 https://api.facebook.com/method/fql.query?query=select%20total_count,like_count,comment_count,share_count,click_count%20from%20link_stat%20where%20url='http://www. groupon.com/deals/seattlehelitourscom-by-classic-helicopter-corp'&format=json

In der Erwägung, dass dieser nicht:

 https://api.facebook.com/method/fql.query?query=select%20total_count,like_count,comment_count,share_count,click_count%20from%20link_stat%20where%20url='http://www. livingsocial.com/deals/278194-sunset-kayaking-hot-chowder'&format=json

Auf der zweiten Seite ist eindeutig die Anzahl der Freigaben angegeben. Wenn ich den HTML-Code der Seite überprüfe, wird die URL zum Freigeben verwendet, die ich oben in die API-Anforderung eingefügt habe. Die API antwortet jedoch weder für die Anzahl der Likes noch für die Anzahl der Shares mit Count-Informationen.

Gibt es Hinweise, warum die API möglicherweise auf einige URLs reagiert, auf andere jedoch nicht?

56
Vijay Boyapati

UPDATE: Diese Lösung ist nicht mehr gültig. FQLs sind seit dem 7. August 2016 veraltet.


https://api.facebook.com/method/fql.query?query=select%20%20like_count%20from%20link_stat%20where%20url=%22http://www.techlila.com%22 =

Auch http://api.facebook.com/restserver.php?method=links.getStats&urls=http://www.techlila.com zeigt Ihnen alle Daten wie "Anzahl der Freigaben", " Wie Count 'und' Comment Count 'und insgesamt all diese.

Ändern Sie die URL (d. H. http://www.techlila.com ) nach Bedarf.

Dies ist die richtige URL. Ich erhalte die richtigen Ergebnisse.

BEARBEITEN (Mai 2017): Ab Version 2.9 können Sie eine Grafik-API aufrufen, wobei ID die URL ist, und das Feld "Engagement" auswählen. Unten finden Sie einen Link mit dem Beispiel aus dem Grafik-Explorer.

https://developers.facebook.com/tools/Explorer/?method=GET&path=%3Fid%3Dhttp%3A%2F%2Fcomunidade.edp.pt%26fields%3Dengagement&version=v2.9

47
Rajesh Namase

Ab dem 8. August 2016 sind FQLs veraltet.


Update 10/2017 (v2.10):

Hier ist eine nicht veraltete Methode, um die Anzahl der URLs und Freigaben zu ermitteln (kein Zugriffstoken erforderlich):

https://graph.facebook.com/?fields=og_object {likes.summary (total_count) .limit (0)}, share & id = https://www.stackoverflow.com


Ergebnis:

{
   "og_object": {
      "likes": {
         "data": [

         ],
         "summary": {
            "total_count": 83
         }
      },
      "id": "10151023731873397"
   },
   "share": {
      "comment_count": 0,
      "share_count": 2915
   },
   "id": "https://www.stackoverflow.com"
}

JQuery-Beispiel:

$.get('https://graph.facebook.com/'
    + '?fields=og_object{likes.summary(total_count).limit(0)},share&id='
    + url-goes-here,
    function (data) {
        if (data) {
            var like_count = data.og_object.likes.summary.total_count;
            var share_count = data.share.share_count;
        }
    });

Hinweis:

https://developers.facebook.com/docs/graph-api/reference/url

42
budi

Verwenden Sie die Open Graph-API. Hier ein Live-Beispiel, in dem abgefragt wird, wie viele Likes "Coca Cola" hat.

https://developers.facebook.com/tools/Explorer/?method=GET&path=cocacola%3Ffields%3Dlikes

Was auf Folgendes hinausläuft:

https://graph.facebook.com/cocacola?fields=likes

Was du in einem AJAX GET tun könntest

Das Ergebnis ist:

{
  "likes": 71717854, 
  "id": "40796308305"
}
17
John Culviner

Alle vorherigen Antworten wurden inzwischen verworfen. Diese Methode funktioniert ab August 2016:


So ermitteln Sie die Anzahl der identischen URLs:

GET request: https://graph.facebook.com/ [url]/access_token = [access_token]

Nehmen Sie dann shares-> share_count aus dem zurückgegebenen JSON-Objekt.


Anzahl der Fans einer Facebook-Seite:

GET request: https://graph.facebook.com/ [url] /? Fields = fan_count & access_token = [access_token]

Nehmen Sie dann das Feld 'fan_count' aus dem zurückgegebenen JSON-Objekt.


Sie können dies testen und Ihr Zugriffstoken mit Graph API Explorer erhalten

11
jetlej

Facebook Graph ist großartig. Mach einfach so etwas wie unten. Ich habe die URL von Perl.org eingegeben. Sie können dort eine beliebige URL eingeben.

https://graph.facebook.com/fql?q=SELECT%20like_count,%20total_count,%20share_count,%20click_count,%20comment_count%20FROM%20link_stat%20WHERE%20url%20=%20%27http:/ /Perl.org%27

7
Chankey Pathak

Für die neueste 2.1 Graph API wird ein Beispiel sein, um Likes für imdb.com zu erhalten

Verwenden Sie dies, um die ID abzurufen https://developers.facebook.com/tools/Explorer/?method=GET&path=%3Fid%3Dhttp%253A%252F%252Fwww.imdb.com%3Ffields%3Dlikes&version=v2. 1

und dann die Likes bekommen

https://developers.facebook.com/tools/Explorer/?method=GET&path=414652589771%2Flikes&version=v2.1

Dokument

URL /?id={url}

Represents an external URL as it relates to the Facebook social graph - shares and comments from the URL on Facebook, and any Open Graph objects associated with the URL.

Referenz http://harshtechtalk.com/how-get-likes-count-posts-comments-facebook-graph-api/

7
vincentlcy

Sie können zeigen, Facebook Share/Like Count Like This: (Getestet und verifiziert)

$url = http://www.yourdomainname.com // You can use inner pages

$rest_url = "http://api.facebook.com/restserver.php?format=json&method=links.getStats&urls=".urlencode($url);

$json = json_decode(file_get_contents($rest_url),true);


echo Facebook Shares = '.$json[0][share_count];

echo Facebook Likes = '.$json[0][like_count];

echo Facebook Comments = '.$json[0][comment_count];
4
Atif Tariq

Für die Graph API v2.1 können Sie die Anzahl der identischen Werte nur mit einem Aufruf ermitteln, sodass Sie nicht mehr durch das Paging gehen müssen.

Zum Beispiel, um die Anzahl der Likes von http://www.imdb.com zu erhalten

https://graph.facebook.com/414652589771/likes?summary=1

Graph API Explorer https://developers.facebook.com/tools/Explorer/?method=GET&path=414652589771%2Flikes%3Fsummary%3D1&version=v2.1

Es ist irgendwie nicht dokumentiert (zumindest im Moment reiche ich diese Antwort ein ...). Ich fand die Antwort in https://stackoverflow.com/a/18198957/1822624

3
Edward Fung

verwenden Sie die unten stehende URL und ersetzen Sie myurl durch Ihre Post-URL. Sie erhalten dann alle Informationen

http://api.facebook.com/restserver.php?method=links.getStats&urls=myurl

beachten Sie jedoch, dass Sie nur im XML-Format antworten

Beispiel:

<share_count>1</share_count>
<like_count>8</like_count>
<comment_count>0</comment_count>
<total_count>9</total_count>
<click_count>0</click_count>
<comments_fbid>**************</comments_fbid>
<commentsbox_count>0</commentsbox_count>
2
varun

Ihre Frage ist ziemlich alt und Facebook hat FQL jetzt abgewertet, aber was Sie wollen, können Sie immer noch mit diesem Dienstprogramm tun: Facebook Analytics . Sie werden jedoch feststellen, dass es lange dauern wird, bis Sie Einzelheiten darüber erfahren, wer Ihnen gefällt oder was Sie kommentiert. Dies liegt daran, dass Facebook jeweils nur einen sehr kleinen Datenblock zur Verfügung stellt und viel Paging erforderlich ist, um alles abzurufen.

1
Loïc Joachim

Sie benötigen die erweiterte Berechtigung "read_stream", müssen dann den Facebook-API-Endpunkt aufrufen und likes,shares Zu Ihrem fields hinzufügen.

Dieser Anruf

https://developers.facebook.com/tools/explorer?method=GET&path=me/feed?fields=likes,shares

gibt ein Datenarray wie dieses zurück

{
   "data": [
    {
     "likes": {
        "data": [
                 {
                   "name": "name of user who liked status ",
                   "id": "id of user who liked status "
                 }
                ],
        "count": number of likes
     },
     "shares": {
      "count": number of shares 
     }, 
     "id": "post id",
     "created_time": "post creation time"
    }
   ]
}
1
Abood Sy

Ich sehe dieses nette Tutorial, wie man mit PHP die Anzahl der Likes von Facebook erhält.

public static function get_the_fb_like( $url = '' ){
 $pageURL = 'http://nextopics.com';

 $url = ($url == '' ) ? $pageURL : $url; // setting a value in $url variable

 $params = 'select comment_count, share_count, like_count from link_stat where url = "'.$url.'"';
 $component = urlencode( $params );
 $url = 'http://graph.facebook.com/fql?q='.$component;
 $fbLIkeAndSahre = json_decode( $this->file_get_content_curl( $url ) ); 
 $getFbStatus = $fbLIkeAndSahre->data['0'];
 return $getFbStatus->like_count;
}

hier ist ein Beispielcode. Ich weiß nicht, wie ich den Code mit dem richtigen Format hier einfügen soll. Bitte besuchen Sie diesen Link, um eine bessere Ansicht des Codes zu erhalten.

Erstellen eines benutzerdefinierten Facebook-ähnlichen Zählers

1
reylimjr

Ich glaube nicht, dass Facebooks Open Graph-Objekt, d. H. "Og_object", mehr als comment_count & share_count für eine URL bereitstellt. Versuche dies; Ersetzen Sie $ YOUR_URL durch die URL und $ ACCESS_TOKEN durch Ihr Zugriffstoken im folgenden Link https://graph.facebook.com/v2.5/ $ YOUR_URL? Access_token = $ ACCESS_TOKEN

Beispielsweise:

https://graph.facebook.com/v2.5/http://espn.go.com/nfl/story/_/id/14424066/handing-holiday-gifts-all -32-nfl-teams-nfl? Access_token = $ ACCESS_TOKEN

{
  og_object: {
    id: "956517601094822",
    description: "Naughty or Nice, every NFL team deserves something for Christmas. So in lieu of Santa Claus, Bill Barnwell is here to distribute some gifts.",
    title: "Barnwell: Handing out holiday gifts to all 32 teams",
    type: "article",
    updated_time: "2015-12-23T17:20:55+0000",
    url: "http://espn.go.com/nfl/story/_/id/14424066"
  },
  share: {
    comment_count: 0,
    share_count: 354
  },
  id: "http://espn.go.com/nfl/story/_/id/14424066/handing-holiday-gifts-all-32-nfl-teams-nfl"
}

Wenn Sie versuchen, Likes zu erhalten, erhalten Sie außerdem den folgenden Fehler : https://graph.facebook.com/http://rottentomatoes.com?fields=likes&summary=1&access_token= $ ACCESS_TOKEN

{
  error: {
    message: "(#100) Tried accessing nonexisting field (likes) on node type (URL)",
    type: "OAuthException",
    code: 100,
    fbtrace_id: "H+KksDn+mCf"
  }
}
0
blueskin