2013-09-26 12 views
23

Ich versuche, alle öffentlichen Facebook-Posts mit einem Hashtag, die eine Kombination von Wörtern zusammen geklebt ist, zu holen. Zum Beispiel "#ThisIsMyHashTag", mit der graph search api jedoch die Beiträge nicht gefunden werden. Suchen, wenn das Hashtag ein tatsächliches Wort ist, funktioniert gut.Facebook API Suche nach Hashtag

Kennt jemand eine Möglichkeit, dies zu arbeiten?

EDIT: Es scheint, dass einige hastags mit mehreren Wörtern sind da drin, z. "#BreakingBadMarathon". Entschuldigung für die Änderung der Frage, weiß jemand, ob dies nur für wirklich beliebte Hashtags funktioniert, oder ist es vielleicht, dass der Suchindex eine Weile braucht, um zu aktualisieren?

EDIT 2: OK, also jetzt einige der Beiträge für meinen Hashtag angezeigt werden, aber nicht alle von ihnen sind. Als der Anruf früher kam, erschienen 2 neue Beiträge, aber keine älteren, und wenn sie später erneut ausgeführt wurden, erschien einer der früheren Beiträge. Aber einige vor dem frühesten, einige zwischen den Posts, die zurückgegeben werden, und einige Posts, die ich nach dem letzten in der Antwort gemacht habe, werden nicht zurückgegeben. Ich frage mich, ob die Beiträge in verschiedenen Rechenzentren gespeichert wurden und einige von ihnen indexiert werden und manche nicht? Hat jemand andere Ideen, warum einige öffentliche Beiträge erscheinen und andere nicht?

+0

Dies wurde oft gefragt. Haben Sie diese Fragen vor dem Posten durchsucht? Wie auch immer, es gibt keine API für Hashtags. –

+0

Ja, ich habe überall in SO gesucht, die anderen Antworten erwähnen nur echte Wörter, nicht Hashtag mit zusammengesetzten Wörtern, also ist es eine andere Frage. – neilcrookes

Antwort

7

ich beschlossen, diese Frage auf diese Weise:

Es ist möglich, Abfrage für Hashtag verwenden, '% 23' statt # (die entsprechende URL-Codierung # -> '%23') in Abfrage-String.

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

Diese Methode scheint gut zu funktionieren.

+0

Makro ist richtig, wir können alle öffentlichen # Tag mit "https://graph.facebook.com/search?q=%23evanna&&limit=10000&access_token=YOUR-ACCESS-TOKEN" holen und zweitens können wir es von Facebook bekommen Streamtabelle mit FQL. Aber wir werden nicht alle öffentlichen #Tag nur für Freunde oder Benutzer bekommen. Denke zweimal darüber nach, wenn du abstimmen willst, Jungs. –

+2

{ "Fehler": { "message": "(# 11) Beitrag Suche veraltet ist", "type": "OAuthException", "Code": 11 } } –

4

Versuchen Sie, diese gibt es zwei Wege:

First Use Facebook Graph API:

https://graph.facebook.com/ search? Q =% 23YOU-Hashwert-& Grenze = 10000 & access_token = YOUR-ACCESS-TOKEN

Second way is read Stream Table via FQL:

Aber es wird Ihnen keine öffentlichen Daten geben. es funktioniert nur mit Benutzern oder Freunden und die Stromtabelle Sie brauchen ‚read_stream‘ Berechtigungen

// FQL Abfrage mit Vollbenutzerdaten

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 

Open ‚https://developers.facebook.com/tools/explorer/‘ zu lesen und hinzufügen 'search?q=%23hashtag-string' Verwendung gültig access_token und ta da :)

More help see this attached Image

enter image description here

+1

Vielen Dank für Ihren Kommentar. Seit dem Stellen der Frage habe ich durch eine informierte Quelle erfahren, dass Facebook "nicht garantiert, dass alle öffentlichen Beiträge zurückgegeben werden". Das ist das gleiche wie Twitter, obwohl nach meiner Erfahrung mit Twitter etwa 95% der öffentlichen Tweets zurückgegeben wurden. Während von Facebook, war es mehr wie 10%. Grundsätzlich, wenn Sie etwas bauen, das erfordert, dass Sie die meisten öffentlichen Posts von Facebook mit einem Hashtag erhalten - nicht. – neilcrookes

+0

@neilcrookes: Hallo, Vielen Dank für Ihren wertvollen Kommentar. Ich war mir dieser Facebook-Fakten nicht bewusst, dass sie keine 100% Daten zurückgeben. Ja, ich werde mit einem Projekt beginnen, das maximale Hash-Tag-Daten von Facebook benötigt. Bitte helfen Sie mir, wenn es eine andere Möglichkeit gibt, die Hashtag-Daten eines Nutzers von Facebook zu holen. Ich danke dir sehr!! :) –

+0

kenne ich nicht anders. Es tut uns leid. Wir müssen warten, bis Facebook eine Hashtag-API veröffentlicht, und selbst dann müssen wir einige ziemlich gründliche Tests durchführen, um zu bestätigen, dass alle Daten zurückgegeben werden, nicht nur einige. Ich würde dein Projekt jetzt auf Eis legen, wenn ich du wäre. – neilcrookes

15

Beachten Sie, dass ab August 2014 und Graph API 2.0 hat Facebook die Post Suchfunktion veraltet:

Using the Graph API (v1.0) > Available Search Types:

Post: alle öffentlichen Beiträge Suche. Unterstützt kein Limit/Offset-Paging. Dies ist in Version 2.0 oder höher Versionen der API nicht verfügbar

+9

Gibt es einen Ersatz? Ohne es macht diese Frage und alle Antworten ziemlich nutzlos! –

+0

Offenbar ist der einzige Weg, um es zu tun, um Zugriff auf die öffentliche Feed-API zu bekommen, was unmöglich ist. In anderen Welten gibt es keinen Ersatz dafür –

1

‚/v1.0/search‘ hat in Version 2.0 und die Anwendung als veraltet nicht v1.0 API verwenden, wenn es erstellt wurde nach dem 30. April 2014

Verwandte Themen