2011-07-22 18 views
5

Sono in qualche modo confuso su come funziona FQL di Facebook. Ho bisogno di ottenere il "fan del mese" di una pagina specifica. Questo è un utente che ha fatto il maggior numero di post e commenti.Limitazioni dell'intervallo FQL per streaming e commenti

Nella facebook FQL stream documentation si dice:

Ogni query della tabella flusso è limitato ai 30 giorni precedenti o 50 posti, il maggiore, tuttavia è possibile utilizzare specifici del tempo settori quali created_time con gli operatori FQL (come < o>) per recuperare una gamma di post molto più ampia.

E questo è quello che sto facendo. Io sono sempre i posti all'interno di un certo range seguente modo:

SELECT actor_id,created_time FROM stream WHERE source_id = '.$wallid.' AND (created_time >= '.$date_start.' OR updated_time >= '.$date_start.')' 

Questo sembra funzionare - in qualche modo - ma sto avendo problemi con i commenti. Non voglio ottenere tutti i commenti per un post specifico ma tutti i commenti all'interno di un intervallo di tempo.

SELECT fromid, time FROM comment WHERE post_id IN (SELECT post_id FROM stream WHERE source_id = '.$wallid.') 

Ciò restituirà circa 50 commenti. Quando aggiungo quanto segue:

AND time > 1309478400 // 2011-07-01 

Ho anche ricevuto commenti. Ma con le seguenti (2011-07-01 - 2011-07-02) torno un array vuoto:

AND time > 1309478400 AND time < 1309564800 

Quando non aggiungo le condizioni del tempo, sembra come se potessi tornare indietro di più di 50 commenti eseguendo diverse query con limitazione di incremento:

... LIMIT 0, 50 
... LIMIT 50, 50 

Ma questa limitazione non funziona correttamente con la mia condizione di tempo.

Quindi, qualcuno ha già fatto qualcosa di simile o qualcuno può spiegare in quali circostanze le limitazioni funzionano e quando no?

risposta

0

FQL sarà deprecato dal 30 Aprile 2015 ---

Quindi, ti consigliamo di utilizzare semplicemente il punto finale GraphAPI documentato here

Purtroppo, non sembra che la dà possibilità di filtrare in base al tempo, ma puoi semplicemente prendere i risultati per ottenere un'iterazione attraverso di essi fino a quando non ottieni il tempo che desideri ...