2011-06-30 9 views
12

Próbuję uzyskać WSZYSTKIE upodobania użytkownika za pomocą FQL. Poniżej znajdują się moje badania obejmujące to, co próbowałem i problemy z każdą próbą.Zdobądź wszystkie sympatie użytkownika (wszystkie z nich) z FQL

1) Najprostszą metodą byłoby zapytanie o tabelę w uid. Więc to zwraca 57 (dla mnie) polubień w strumieniu drugiej osoby.

SELECT object_id, post_id, user_id 
FROM like 
WHERE user_id = me() 

XML wygląda następująco (zauważ niewyjaśnione nieobecności post_id)

<like> 
    <object_id>10150695050005313</object_id> 
    <post_id></post_id> 
    <user_id>xxxxxxxxxxx</user_id> 
</like> 

Powyższe wydaje się logicznym krokiem, ale Facebook doesn't index the user_id field więc nie mogę użyć następującego kodu, aby uzyskać dalsze szczegóły. Ten kod nie działa.

SELECT post_id, message 
FROM stream 
WHERE post_id IN (
    SELECT object_id, post_id, user_id 
    FROM like 
    WHERE user_id = me() 
) 

2) Korzystanie z Graph API:/Me/lubi/pobiera informacje na 95 stron fanów, ale nie ze zdjęć, wideo, linki, lub offline treści. Pełny adres URL jest: https://graph.facebook.com/me/likes?access_token=

Na przykład:

{ 
"data": [ 
    { 
    "name": "BStU", 
    "category": "Organization", 
    "id": "136978696319967", 
    "created_time": "2011-06-29T12:09:17+0000" 
    }, 
    { 
    "name": "Euchre", 
    "category": "Interest", 
    "id": "112355915446795", 
    "created_time": "2011-06-29T12:06:07+0000" 
    }, 

3) FQL zwraca taką samą jak w powyższym kodzie, 95 Fan Pages:

SELECT page_id,name 
FROM page 
WHERE page_id IN (
    SELECT page_id 
    FROM page_fan 
    WHERE uid=me() 
) 

Więc Podsumowując, najlepiej bym być w stanie zwrócić tak jak dla użytkownika, niezależnie od obiektu. Jestem skłonny iść naprzód z mieszaniną stron fanowskich i postów strumieniowych, jeśli mogę zwrócić je wszystkie, wraz z danymi, za pomocą jednego zapytania FQL.

Wszelkie sugestie? Dodam, że próbuję to zrobić bez korzystania z API REST, ponieważ będzie on ulegał degradacji (pewnego dnia?), Dlatego używanie opcji fql.multiquery nie jest opcją.

Odpowiedz

1

Niestety, nie można pobrać wszystkich osób, które lubią, używając punktu końcowego /likes. Ograniczamy go do wszystkiego, co ma stronę FB, która jest dowolnym obiektem otwartego wykresu, bez artykułów. Na przykład, jeśli podoba Ci się obiekt z otwartym wykresem, który ma og:type z article, nie zwracamy tego na punkcie końcowym wykresu api likes.

+3

HI Jeff, ograniczając sympatie użytkowników cudzego (prywatny) obraz sensu, ale dlaczego nie użytkownik ma dostęp do swoich upodobań rzeczy, które są publiczne? Zasadniczo jest to to samo co reddit lub stumbleupon, pozwala użytkownikowi śledzić rzeczy, które czytają online, w sieci społecznościowej. – ow3n

+0

@Jeff, jestem zdezorientowany, czy mówisz, że Facebook pozwoli zapytać naszą aplikację o taki stół, i tylko wtedy, gdy uwierzytelniony użytkownik naszej aplikacji jest aktorem, filmem lub drużyną sportową? – DMCS

+0

Nie, mówię, że możesz ciągnąć rzeczy lubiane z wyjątkiem artykułów. –

2

Byłem w stanie używać FQL, aby uzyskać dostęp do niektórych, ale nie wszystkich, strumieni. Zobacz: http://facebook.stackoverflow.com/questions/8496980/fql-like-table-not-returning-any-results

Zapytania ja mam to:

1) daje mi strumień przedmiotów lubiłem na stronie RSS:

SELECT post_id, source_id, message 
    FROM stream 
    WHERE source_id 
    IN (SELECT target_id FROM connection WHERE source_id=me() and is_following=1) 
    AND likes.user_likes=1 
    LIMIT 10 

2) daje mi strumień przedmiotów I” Wcześniej lubiłem z mojego kanału, który ja Wysłany:

SELECT post_id, source_id, message 
    FROM stream 
    WHERE source_id=me() 
    AND likes.user_likes=1 
    LIMIT 10 

Co jest irytujące jest to, że nie możnag et lubi użytkownika z elementów strumieniowych dla elementów strumienia zdarzeń, elementu strumienia Przyjaciela, elementów strumienia grupowego itp. Chociaż wszystkie uprawnienia są akceptowane dla tego użytkownika. To nie tak, że pytam o tajne informacje. Oczywiście, użytkownik może polubić i usunąć ulubione elementy strumieniowe za pośrednictwem mojej aplikacji. Po prostu nie mogę przesłać zapytania o pełną listę bieżących elementów strumienia, które zostały polubione przez użytkownika.

+0

Oczekiwanie na idealną odpowiedź. Jeszcze przyjść, przypuszczam ... – ow3n

0

Spróbuj zapytanie FQL:

SELECT user_id, object_id, post_id, object_type 
FROM like 
WHERE user_id = me() 
Powiązane problemy