8
votes

Comment puis-je obtenir le nombre de partage d'une photo sur Facebook?

En utilisant API graphique, je peux récupérer des commentaires, aime le nombre d'URL Facebook interne et externe. Mais je ne peux que faire compter les actions d'URL Facebook externe

Par exemple:

https: //graph.facebook .com /? ids = http: //www.youtube.com/watch? v = tu8bnocnvzc

Mais pas un Facebook:

http: // graphique .Facebook.com /? ids = http: //www.facebook.com/photo.php? fbid = 364861533533284

Comment puis-je obtenir les numéros d'actions d'un objet Facebook?

(Je peux obtenir des goûts et des commentaires en utilisant cette URL http://graph.facebook.com/364861533533284)


0 commentaires

3 Réponses :


-1
votes

3 commentaires

Pouvez-vous s'il vous plaît écraser la requête pour obtenir le résultat?


OK a mis à jour ma réponse avec la requête et un test dans les outils de développement, j'espère que cela aide!


L'approche décrite dans cette réponse ne fonctionne pas. Je suis capable de trouver comme_count et commenta_count via l'API graphique ou la table FQL "photo", mais il semble y avoir aucun moyen de trouver le nombre de partage pour une photo. Voici un exemple de requête qui a des résultats incorrects: développeurs.facebook.com/tools/...



2
votes

La réponse précédente est correcte en une seule chose - vous devez utiliser FQL. C'est plus lent mais ça marche. Quant au reste - il ne fonctionnera pas du tout parce que l'API ne retournera pas Share_Count pour le lien photo, car il s'agit d'un interne pour Facebook et a des paramètres PHP dans le lien lui-même ou une autre raison inconnue.

Ce n'est pas C'est bien que l'API ne renverra pas ces informations puisqu'elles sont publiques dans la plupart des cas, elles devraient donc mettre en œuvre cela, mais cependant cela ne fonctionne pas. P>

La chose qui est ce genre de travail, ce qui est de récupérer le lien de poste connecté Avec cette photo et comptez ses actions. P>

Heres le code utilisé: ` P>

       $photo_link = $photo['link'];
       //First Query - Find the ID of the Post for the Photo
       $query_post_id = "SELECT post_id, permalink FROM stream WHERE source_id = '[PAGE_OR_USER_ID]' AND permalink = '$photo_link'";
       $fb_post_info = $facebook->api(array('method' => 'fql.query', 'query' => $query_post_id));
       $id = $fb_post_info['0']['post_id'];
       $whole_id = $fb_post_info['0']['post_id'];
       $fb_post_id = explode('_', $id);

       $fb_post_id = $fb_post_id['1'];


       //Second Query - Find the Share Count Using the Post Link (not the Photo link)
       $query_share_count = "SELECT share_count FROM link_stat WHERE url='http://www.facebook.com/[PAGE_OR_PERSONAL_USERNAME]/posts/$fb_post_id'";

       $post_info = $facebook->api(array('method' => 'fql.query', 'query' => $query_share_count));
       $share_count = $post_info['0']['share_count'];
       echo $share_count;
        ?></span>`


1 commentaires

Notez que vous n'avez pas besoin d'utiliser FQL pour la 2e partie; Vous pouvez simplement utiliser graph.facebook.com/pageid_postid



0
votes

Si la photo a associé post et post_id - alors vous pourriez obtenir des actions comptez à partir de la table Stream fort>, sinon vous n'aurez que des liens, des commentaires comptent.

post_id également enregistré dans Photo table comme page_story_id strong>, p>

sinon, vous pourriez essayer de le simuler (acaténant propriétaire et identifiant d'objet), mais c'est toujours le cas, P>

Ou vous pouvez essayer de trouver le message associé par Source + Permalink ou pièce jointe.Media.Link ou créé_time (limite d'utilisation dans ces cas en raison de comportement FB difficiles) p>

mais je pense que si page_story_id Strong> est vide dans la table forte> photo forte> quand il n'y a aucun poste connexe. P>

exemple (PHP): p>

$query = array(
    'photoInfo' => "SELECT object_id, aid, album_object_id, comment_info.comment_count, like_info.like_count, page_story_id, concat(owner, '_', object_id), owner, pid, images  FROM photo where object_id='{$fbActivity['object_id']}'",
    'postInfo'  => "SELECT post_id, share_count, like_info.like_count, comment_info.comment_count, message FROM stream WHERE
                        post_id IN (SELECT page_story_id FROM #photoInfo)
                        OR post_id IN (SELECT anon FROM #photoInfo)
                    ' //OR (source_id IN (SELECT owner FROM #photoInfo) AND permalink = '{$fbActivity['link']}') LIMIT 999
);
$t = $publicFb->api('/fql', 'GET', array('q' => $query));


0 commentaires