2013-09-26 24 views
23

Próbuję pobrać wszystkie publiczne posty na Facebooku zawierające hashtag będący kombinacją sklejanych słów. Na przykład "#ThisIsMyHashTag", używając graph search api, ale posty nie zostaną znalezione. Wyszukiwanie, kiedy hashtag jest faktycznym słowem, działa dobrze.Wyszukiwanie przez Facebook API hashtag

Czy ktoś wie, jak to działa?

EDYCJA: Wygląda na to, że są tam niektóre hastagi z wieloma wyrazami, np. "#BreakingBadMarathon". Przepraszam za zmianę pytania, czy ktoś wie, czy to działa tylko w przypadku bardzo popularnych hashtagów, czy może indeks wyszukiwania trwa trochę dłużej?

EDYCJA 2: OK, więc teraz niektóre posty są wyświetlane dla mojego hashtagu, ale nie wszystkie z nich są. Podczas nawiązywania połączenia wcześniej pojawiły się 2 ostatnie posty, ale nie starsze, a po uruchomieniu ponownie później pojawił się jeden z wcześniejszych postów. Ale niektóre wcześniej, niektóre między postami, które są zwracane, a niektóre posty zrobione po ostatniej w odpowiedzi nie są zwracane. Zastanawiam się, czy posty były przechowywane w różnych centrach danych, a niektóre z nich są indeksowane, a inne nie? Ktoś jeszcze ma pomysły, dlaczego pojawiają się publiczne posty, a inne nie?

+0

To było wiele razy zadawane. Czy przeszukałeś te pytania przed wysłaniem? Tak czy inaczej, od teraz nie ma API dla hashtagów. –

+0

Tak, przeszukałem całe SO, inne odpowiedzi wspominają tylko prawdziwe słowa, a nie hashtag ze złożonymi słowami, więc jest to inne pytanie. – neilcrookes

Odpowiedz

7

Postanowiłem to pytanie w ten sposób:

jest to możliwe przy użyciu kwerendy dla hashtag, „% 23” # (zamiast odpowiedniego kodowania URL # -> '%23') w ciągu kwerendy.

Przykład: https://graph.facebook.com/search?q=%23myhashtag.

Ta metoda wydaje się działać poprawnie.

+0

makro ma rację, możemy pobrać cały publiczny #tag, używając "https://graph.facebook.com/search?q=%23evanna&&limit=10000&access_token=YOUR-ACCESS- TOKEN", a drugi sposób to możemy pobrać z Facebooka Tabela strumieniowa przy użyciu FQL. Ale nie będziemy udostępniać wszystkich publicznych #tag tylko znajomym lub użytkownikom. Pomyśl dwa razy, kiedy będziesz kastować głosujących gości. –

+2

{ "error": { "message" : "(# 11) Szukaj Wyślij została zaniechana", "type": "OAuthException" "code": 11 } } –

4

Spróbuj to jest dwukierunkowy:

First Use Facebook Graph API:

https://graph.facebook.com/ wyszukiwania q =% 23YOU-HASH-WARTOŚĆ & limit = 10000 & access_token = TWÓJ-Access-TOKEN

Second way is read Stream Table via FQL:

Ale to nie da danych publicznych. to działa tylko z użytkownikiem lub przyjaciółmi i czytać tabelę strumienia potrzeba „read_stream” uprawnienia

// FQL frazę pełne dane użytkownika

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 

otwarty „https://developers.facebook.com/tools/explorer/” i dodać 'search?q=%23hashtag-string' użyj prawidłowego access_token i ta da :)

More help see this attached Image

+1

Dzięki za komentarz. Od momentu zamieszczenia pytania dowiedziałem się, dzięki informacjom, że Facebook "nie gwarantuje, że wszystkie publiczne posty zostaną zwrócone". To jest to samo, co na Twitterze, chociaż z mojego doświadczenia wynika, że ​​z Twittera zwrócono około 95% publicznych wiadomości. Natomiast z Facebooka było to około 10%. Zasadniczo, jeśli budujesz coś, co wymaga większości publicznych postów z Facebooka za pomocą hashtagu - nie rób tego. – neilcrookes

+0

@neilcrookes: Cześć, bardzo dziękuję za cenny komentarz. Nie wiedziałem o tych faktach na Facebooku, że nie zwracają 100% danych. Tak, mam zamiar rozpocząć projekt, który wymaga maksymalnych danych tagów hashowych z Facebooka. Uprzejmie mi pomóż, jeśli istnieje inny sposób pobierania danych z hashów użytkownika z Facebooka. Dziękuję bardzo!! :) –

+0

Nie wiem inaczej. Przepraszam. Musimy poczekać, aż Facebook opublikuje hashtag API, a nawet wtedy musimy zrobić całkiem niezłe testy, aby potwierdzić, że zwraca wszystkie dane, a nie tylko niektóre. Odłożyłbym twój projekt na razie, gdybym był tobą. – neilcrookes

15

Należy pamiętać, że od sierpnia 2014 r. I Graph API 2.0, Facebook jest przestarzała funkcjonalność wyszukiwarki postu:

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

słupek: Znajdź wszystkie posty publiczne. Nie obsługuje stronicowania limit/offset. To nie jest dostępne w wersji 2.0 lub nowszej interfejsu API

+9

Czy jest jakaś wymiana? Bez tego sprawia, że ​​to pytanie i wszystkie odpowiedzi są bezużyteczne! –

+0

Najwyraźniej jedynym sposobem, aby to zrobić, jest uzyskanie dostępu do interfejsu API kanału publicznego, co jest niemożliwe. Tak więc w innych światach nie ma żadnego zastępstwa –

1

'/v1.0/search' został uznany za przestarzały w wersji 2.0, a aplikacja nie może korzystać z interfejsu API w wersji 1.0, jeśli została utworzona po 30 kwietnia 2014 roku

Powiązane problemy