Potrzebuję zbudować aplikację, która będzie miała trzy pola wejściowe dla trzech adresów URL. Następnie aplikacja musi przeszukać wszystkie publiczne posty na Facebooku i znaleźć użytkowników, którzy opublikowali te konkretne adresy URL. Używam tego kodu:Zapytanie o wszystkie publiczne posty na Facebooku
$q = "http://www.someurl.com";
$search = $facebook->api('/search?q=' . $q .'&type=post&limit=200');
foreach ($value as $fkey=>$fvalue) {
if(isset($fvalue['from']['name']))
{
echo $fvalue['from']['name']."<br />";
}
}}
Spowoduje to wydrukowanie 200 nazwisk użytkowników Facebooka, którzy zamieścili jeden konkretny link. Ale, jak wspomniałem powyżej, muszę wyszukać wiele dopasowań adresów URL. Korzystając z tego podejścia, musiałbym wykonać trzy zapytania, a następnie porównać wyniki i uzyskać użytkowników, którzy pojawią się na wszystkich trzech listach wyników. Czy istnieje sposób na utworzenie zapytania, które zwróci potrzebne wyniki w jednym wywołaniu? Teraz, gdy FQL jest potężnym narzędziem, ale myślę, że nie można go używać do tego rodzaju publicznych pytań. Czy naprawdę ograniczam się tylko do publicznego interfejsu graficznego? A jeśli tak, czy możliwe jest tworzenie złożonych zapytań przy użyciu tylko api grafów?
EDIT # 1: Próbowałem za pomocą następujących FQL:
SELECT source_id FROM stream WHERE
CONTAINS('http://www.incgamers.com/2013/12/doom-20th-anniversary-today-true-classic')
AND CONTAINS('http://kotaku.com/5917693/ten-years-of-civ-ii-lock-the-world-in-perpetual-war')
AND CONTAINS('http://www.youtube.com/watch?v=1TBxdXm3DP0') limit 200
Jak rozumiem, to powinien wrócić do użytkowników, którzy mają te trzy linki w swoim strumieniu FB. Tak jednak nie jest. Czy to wszystko źle?
Dzięki za odpowiedzi. Czy przetestowałeś to zapytanie za pomocą narzędzia Graph API Explorer? Powinien działać z postami z mojej własnej ściany, ustawiłem ich prywatność na publiczną. Nie mogę uzyskać żadnych wyników bez względu na to, jaką kombinację linków wchodzę. Myślę, że czegoś brakuje ... – Xardas
Masz rację. Zachowanie jest dziwne! Przetestowałem pierwsze zapytanie za pomocą eksploratora wykresów i działa ono poprawnie. Jednak nie wyświetla żadnych wyników dla wielu adresów URL. –
Próbowałem nawet napisać wiadomość SELECT ze strumienia WHERE CONTAINS ("http://vimeo.com") AND strpos (wiadomość, "http: //vimeo.com")> = 0 I ZAWIERA ("http: // www .youtube.com ") AND strpos (wiadomość," http: //www.youtube.com ")> = 0" i zwróciło kilka wyników. –