web-dev-qa-db-fra.com

Obtenez le compte "J'aime" de Facebook pour chaque page de mon domaine.

J'ai intégré le bouton "J'aime" de Facebook dans de nombreuses pages de mon site. Je souhaite afficher dans une liste les pages les plus "aimées" de mon site, mais je ne vois pas comment obtenir ces données de Facebook en une seule requête. Jusqu'à présent, j'ai pu obtenir le nombre de "J'aime" pour des pages individuelles à l'aide de la requête FQL suivante:

SELECT share_count, like_count, comment_count, total_count
FROM link_stat
WHERE url="http://www.mysite.com/some-page"

Cependant, il n'est pas vraiment possible d'obtenir le décompte pour chaque page de mon site. En plus d'avoir un grand nombre de pages, de nouvelles pages sont constamment créées (nouveaux profils d'utilisateurs, nouveaux blogs et articles de blog, etc.), ce qui compliquerait l'obtention de statistiques complètes pour mon site et impliquerait d'appeler des milliers de fois l'API de Facebook. .

Existe-t-il un moyen de savoir combien de fois chaque page de mon domaine a été "aimée" dans une demande? Ou simplement le top 10 des pages les plus appréciées, ou quelque chose de similaire?

44
KOTJMF

En fait, je le ferais de cette façon:

$arrayOfPages = array('url1', 'url2', 'url3');

$listOfPages = implode(',', $arrayOfPages);

SELECT share_count, like_count, comment_count, total_count, url
FROM link_stat
WHERE url IN ($listOfPages)

Cela vous donnerait toutes les données avec l'URL comme identifiant unique sans avoir à briser la politique de Facebook contre les faux utilisateurs. Vous pouvez créer dynamiquement la variable $arrayOfPages à partir d'une requête sur la base de données de votre site.

22
John Macon

Dans la continuité de la réponse de Salil, voici quelques-unes des principales API utilisées (liste complète ici: http://sharedcount.com/documentation.php ).

Vous pouvez utiliser l'API de sharedcount pour obtenir un résumé général ou écrire quelque chose vous-même à l'aide des API:

7
Uri

Il sera difficile d'obtenir des préférences de FB pour toutes vos pages en une requête, mais vous pouvez obtenir un nombre de partages individuel pour chaque page de votre site. Outre le nombre de partages, vous pouvez également obtenir la répartition des numéros de réseau social individuel pour lequel la page de votre site est partagée. Insérez votre nom de domaine sur http://sharedcount.com/?url=http%3A%2F%2Fwww.parasitech.net%2F avec les suggestions appropriées qui vous ont été fournies. Vous pouvez obtenir des numéros pour Facebook, Twitter, Google+, Diggs, Linkedin, Google Buzz, Delicious et StumbleUpon.

5
Salil

1) créer un faux utilisateur sur fb qui n’aimera que les pages de votre domaine ou un autre moyen de sauvegarder vos URL dans fb avec possibilité de les obtenir ultérieurement par FQL

2) requête:

SELECT share_count, like_count, comment_count, total_count
    FROM link_stat WHERE url in (SELECT object_id FROM like WHERE user_id="fake_user_id")

3) n’oubliez pas de décrémenter 1 fois comme compte;), triez et affichez

2
UIBuilder

Apparemment, il n'y a pas de "LIKE" dans FQL. Quelle était ma première suggestion ..

Bien que vous puissiez utiliser l'opérateur "IN", comme ceci:

SELECT share_count, like_count, comment_count, total_count
FROM link_stat
WHERE "http://www.mysite.com/" IN url
ORDER BY like_count
LIMIT 10;

2
Dave Lugg

Peut-être pouvez-vous simplement demander le nombre de mentions J'aime pour chaque page à chaque fois que la page est affichée. Ce ne sera pas précis, mais en gardant à l'esprit que les pages les plus populaires seront visionnées plus souvent, cela pourrait être suffisant. 

En outre, vous pouvez utiliser un processus de traitement par lots pour interroger le nombre de sites similaires de la page, ou au moins les N derniers en fonction, toutes les deux heures. La plupart du temps, vous n'obtiendrez pas le bon résultat, mais dans la plupart des cas, vos utilisateurs n'auront pas besoin du bon résultat mais d'une approximation suffisante. 

1
Javier

Si vous avez juste besoin du nombre de chaque page, Super Social Media Tracker peut vous le fournir.

http://apps.Microsoft.com/windows/en-US/app/super-social-media-tracker/a56c8971-42e2-4eb4-9b05-7e52233b4e1e

Mais c'est lent pour les pages massives.

0
Remy