Ho bisogno di creare un'applicazione con tre campi di input per tre URL. L'applicazione deve quindi cercare tutti i post pubblici su Facebook e trovare gli utenti che hanno pubblicato tali URL specifici. Sto usando questo codice:Richiesta di tutti i post pubblici di Facebook
$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 />";
}
}}
Questo stampa 200 nomi utente di Facebook che hanno pubblicato un collegamento specifico. Ma, come ho detto sopra, ho bisogno di cercare più corrispondenze URL. Utilizzando questo approccio, avrei bisogno di effettuare tre chiamate di query e quindi di referenziare i risultati e ottenere utenti che appaiono su tutti e tre gli elenchi dei risultati. C'è un modo per creare una query per restituire i risultati necessari in una sola chiamata? Ora che FQL è uno strumento potente, ma penso che non possa essere usato per questo tipo di query pubbliche. Sono davvero limitato solo alle API grafiche pubbliche? E se questo è il caso, è possibile formare una query complessa usando solo il grafico api?
EDIT # 1: Ho provato ad utilizzare seguente 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
quanto ho capito, questo dovrebbe restituire gli utenti che hanno questi tre collegamenti nel loro flusso fb. Tuttavia, questo non è il caso. Sto sbagliando tutto questo?
grazie per la risposta. Hai testato questa query con lo strumento Explorer grafico Graph? Dovrebbe funzionare con i messaggi del mio stesso muro, ho impostato la loro privacy in pubblico. Non riesco ad ottenere alcun risultato, non importa quale combinazione di link inserisco. Penso che ci manchi qualcosa ... – Xardas
Hai ragione. Il comportamento è strano! Ho provato la prima query usando Graph Explorer e sta funzionando bene. Tuttavia, non mostra risultati per più URL. –
Ho anche provato 'SELECT messaggio FROM stream WHERE CONTAINS (" http://vimeo.com ") AND strpos (messaggio, 'http: //vimeo.com')> = 0 E CONTAINS (" http: // www .youtube.com ") AND strpos (messaggio, 'http: //www.youtube.com')> = 0' e ha restituito alcuni risultati. –