web-dev-qa-db-fra.com

Recherche d'API Facebook pour le hashtag

J'essaie de récupérer tous les messages publics Facebook contenant un hashtag qui est une combinaison de mots collés ensemble. Par exemple, "#ThisIsMyHashTag", en utilisant API de recherche graphique mais les articles ne sont pas trouvés. La recherche lorsque le hashtag est un mot réel fonctionne correctement.

Quelqu'un connaît-il un moyen de faire fonctionner cela?

EDIT: Il semble que certains hastags avec plusieurs mots s'y trouvent, par exemple "#BreakingBadMarathon". Désolé d'avoir changé la question, quelqu'un sait-il si cela ne fonctionne que pour les hashtags très populaires, ou peut-être que l'index de recherche met un certain temps à se mettre à jour?

EDIT 2: OK, alors maintenant certains messages apparaissent pour mon hashtag, mais pas tous. Lors de l'appel plus tôt, 2 messages récents sont apparus, mais pas les plus anciens, puis lors de la relance plus tard, l'un des messages précédents est apparu. Mais certains avant le plus tôt, certains entre les messages qui sont retournés et certains messages que j'ai faits après le plus récent dans la réponse ne sont pas retournés. Je me demande si les messages ont été stockés dans différents centres de données et certains d'entre eux sont indexés et d'autres non? Quelqu'un d'autre a une idée de la raison pour laquelle certains messages publics apparaissent et d'autres non?

23
neilcrookes

Notez que depuis août 2014 et Graph API 2.0, Facebook a déconseillé la fonctionnalité de recherche de post:

tilisation de l'API Graph (v1.0)> Types de recherche disponibles :

post : Rechercher tous les messages publics. Ne prend pas en charge la pagination limite/décalage. Ce n'est pas disponible dans la v2.0 ou les versions ultérieures de l'API

15
Jonathan Allard

J'ai résolu cette question de cette façon:

Il est possible d'interroger le hashtag en utilisant '% 23' au lieu de # (l'URL correspondante codant # -> '%23') dans la chaîne de requête.

Exemple: https://graph.facebook.com/search?q=%23myhashtag .

Cette méthode semble bien fonctionner.

7
marco

Essayez ceci, il y a deux façons:

First Use Facebook Graph API:

https://graph.facebook.com/ recherche? q =% 23YOU-HASH-VALUE & limit = 10000 & access_token = YOUR-ACCESS-TOKEN

Second way is read Stream Table via FQL:

Mais cela ne vous donnera pas de données publiques. cela ne fonctionne qu'avec un utilisateur ou des amis et pour lire la table de flux dont vous avez besoin 'read_stream 'autorisations

// Requête FQL avec données utilisateur complètes

SELECT 

action_links, actor_id, app_data, app_id, attachment, 
attribution, call_to_action, claim_count, comment_info, 
created_time, description, description_tags, expiration_timestamp, 
feed_targeting, filter_key, impressions, is_exportable, 
is_hidden, is_popular, is_published, like_info, message, 
message_tags, parent_post_id, permalink, place, post_id, 
privacy, promotion_status, scheduled_publish_time, share_count, 
share_info, source_id, subscribed, tagged_ids, target_id, 
targeting, timeline_visibility, type, updated_time, via_id, 
viewer_id, with_location, with_tags, xid, likes

FROM stream 
WHERE (source_id=me()  ) AND strpos(lower(message),lower('#evanna')) >=0

Ouvrez 'https://developers.facebook.com/tools/Explorer/' et ajouter 'search?q=%23hashtag-string 'utilisez des access_token et ta da valides :)

More help see this attached Image

enter image description here

4
Neeraj Singh

'/v1.0/search' est obsolète dans la version 2.0 et votre application ne peut pas utiliser l'API v1.0, si elle a été créée après le 30 avril 2014

1
Awanish Kumar