BigThink

10 Query FQL per le tue Applicazioni Facebook

Il cuore della maggior parte delle Applicazioni Facebook è formato da chiamate all’API o da query FQL che chiedono alla piattaforma determinati dati da elaborare.

Facebook mette a disposizione degli sviluppatori una quantità immensa di dati relativi ad utenti, Pagine, Profili, relazioni… e possiamo utilizzarli tutti nelle nostre Applicazioni, basta saperlo fare.

In questo articolo ho voluto raccogliere alcune query FQL che ho elaborato io stesso sviluppando le mie Applicazioni e ho deciso di condividerle con te.

Visto che la documentazione e gli esempi ufficiali non sono particolarmente dettagliati, sono sicuro che ti torneranno molto utili!

Se sei alle prime armi e non sai come fare una query a Facebook, leggi prima queste risorse:

Query sugli Utenti

1. Ottenere gli ID di tutti gli amici che usano l’applicazione

SELECT uid
FROM user
WHERE is_app_user = 1 AND uid IN (
    SELECT uid2
    FROM friend
    WHERE uid1 = $id_utente)

2. Ottenere gli ID di tutti gli iscritti ad un gruppo

SELECT uid
FROM group_member
WHERE gid = $id_gruppo

Query su Pagine Fan e Profili

3. Ottenere le Pagine Fan amministrate da un utente

SELECT page_id, name, pic_square
FROM page
WHERE page_id IN (
    SELECT page_id
    FROM page_admin
    WHERE uid = $id_utente)

4. Ottenere le Pagine Fan amministrate, che hanno i permessi di pubblicazione

SELECT page_id, name, pic_square
FROM page
WHERE page_id IN (
    SELECT uid
    FROM permissions
    WHERE publish_stream = 1 AND uid IN (
        SELECT page_id
        FROM page_admin
        WHERE uid = $id_utente))

5. Ottenere lo Stream di una Pagina Fan (solo i contenuti postati dall’admin)

Per poter eseguire questa query, l’utente deve avere dato i permessi di lettura dello Stream sulle sue pagine.

SELECT post_id, actor_id, permalink, message, created_time, attachment
FROM stream
WHERE source_id = $id_pagina AND actor_id = $id_pagina

6. Ottenere i video di Youtube postati sul Profilo di un utente

SELECT attachment
FROM stream
WHERE filter_key IN (
    SELECT filter_key
    FROM stream_filter
    WHERE uid = $id_utente)
AND attachment.caption = 'www.youtube.com'

7. Ottenere gli ultimi commenti dei fan ai post di una Pagina

SELECT fromid, time, text, post_id
FROM comment
WHERE post_id IN (
    SELECT post_id
    FROM stream
    WHERE source_id = $id_pagina AND updated_time > $unix_time)
AND fromid != $id_pagina

8. Ottenere gli ultimi post dei fan su una Pagina

SELECT post_id, actor_id, permalink, message, created_time, attachment
FROM stream
WHERE source_id = $id_pagina AND updated_time > $unix_time AND actor_id != source_id

Query sui Links

9. Ottenere tutti i link postati sul Profilo di un utente

SELECT link_id, title, summary, url, image_urls
FROM link
WHERE owner = $id_utente

10. Ottenere le statistiche di un link

SELECT share_count, like_count, comment_count, click_count
FROM link_stat
WHERE url = '$url'

Se questo post ti è tornato utile, lasciami un feedback nei commenti!

Visto che non sono moltissimi gli sviluppatori Facebook che bazzicano il mio blog, vorrei capire se queste cose interessano o se devo concentrarmi su altro.

Articolo scritto da Ghido

Fondatore di BigThink.it, si occupa dello sviluppo e del coordinamento dei progetti tecnologici. Specializzato nel Marketing su Facebook e nello sviluppo di Applicazioni Social, fa consulenza e formazione ad aziende ed agenzie.

Leggi anche...

Symposium GT 2010: Il video!

Symposium GT 2010: Il video!

Sono davvero soddisfatto della giornata di ieri al Symposium GT. Nonostante le 8 ore di viaggio tra andata e ritorno da Milano a Roma, è stata proprio una bella esperienza. Ringrazio ancora Giorgio Tave per l'ospitalità e Paolo Dello Vicario per avermi invitato a partecipare come relatore. Se non sei potuto venire o vuoi riascoltare ...
Il Pesce d'Aprile di BigThink - The day after

Il Pesce d’Aprile di BigThink – The day after

Devo ammettere che ieri mi sono divertito un sacco a vedere tutte le reazioni al mio Pesce d'Aprile! L'anno scorso non avevo fatto in tempo ad organizzarmi, ma quest'anno ci tenevo a fare qualcosa di particolarmente virale, quindi non potevo che puntare su Facebook, il mio pane quotidiano! Ecco un piccolo resoconto della giornata di ...
Vivi i trailer in prima persona grazie a Facebook Connect!

Vivi i trailer in prima persona grazie a Facebook Connect!

Facebook Connect non è solo utile per integrare Facebook sul nostro blog, ma permette anche una fantastica integrazione con Flash. Molte agenzie di Viral Marketing se ne sono accorte e hanno iniziato ad utilizzarlo in video e trailer per film o videogiochi, aumentando così l'interazione ed il coinvolgimento dell'utente. Grazie a Facebook Connect, infatti, ...
Leggi, guarda, compra... L'evoluzione del Facebook Like!

Leggi, guarda, compra… L’evoluzione del Facebook Like!

Facebook è cambiato. Se nell'Aprile 2010 il buon Zuck aveva lanciato l'ormai famoso Like Button, pochi giorni fa ha davvero deciso di rivoluzionare il modo di relazionarsi su Facebook. Prima, l'unico modo per connettersi con un oggetto dell'Open Graph era mediante l'azione di Like: cliccando sul pulsante Mi piace, creavo una connessione tra me ...
Facebook Places arriva in Italia!

Facebook Places arriva in Italia!

Come forse avrai notato, Facebook Places è finalmente attivo anche per l'Italia. Se accedi all'applicazione Facebook per iPhone, potrai iniziare a fare i tuoi check-in e mostrare agli amici la tua posizione. Ma cos'è Facebook Places? Facebook Places è la nuova funzionalità di geolocalizzazione di Facebook, utilizzabile da cellulare e smartphone. Ti permette di: Visualizzare la ...

29 Commenti

  1. Ciao Ghido, sei la mia ultima speranza :( non riesco a trovare un modo per interrogare fb ed avere una lista di utenti che si sono registrati alla mia fb-app (oppure alla pagina fb), cioè chi ha accettato i permessi della app.

    io non sono un programmatore e non trovo un codice valido da inserire in https://developers.facebook.com/tools/explorer/ per ricevere la lista degli utenti con le relative info per i permessi accettati dalla mapp (per esempio nome+email)

    forse sbaglio posto dove interrogare fb?
    non ne vengo a capo :(

    2 ottobre 2011, 14:59
  2. Ciao ottimo articolo! Molto utile, peccato che non ho trovato quello che mi serviva. Ti spiego ho un’applicazione FB relativa al mio sito. Ho attivato un plugin che gestisce i commenti tramite FB (parliamo di cms wordpress).

    Il mio problema è che voglio andare a prendere i commenti recenti ai miei articoli.

    La parte di codice che esegue questo da un’errore in quanto ritorna XID null lo xid come saprai è l’identificativo dei commenti.

    Quello che voglio fare io è prendere tutti i commenti partendo dal mio app_id
    come faccio? Si può fare? Avresti altre soluzioni?

    15 settembre 2011, 16:17
  3. Roberto

    Ciao, volevo sapere se è possibile utilizzare FQL per recuperare la lista di utenti che hanno cliccato “mi piace” su un certo URL.

    11 giugno 2011, 02:08
  4. Ciao Ghido!
    Altro che se sono utili!

    posso suggerirti altre query da fare?
    Per esempio come fare per capire se un amico permette la scrittura sul suo wall?

    Inoltre, se posso andare oltre la FQL query, ad oggi, come taggare nel proprio post gli amici?
    il metodo @[userid:1:username] non funziona più!

    Grazie per il tuo articolo…UTILISSIMO!

    30 marzo 2011, 19:41
  5. Leandro Santos

    Ciao Ghido! Complimenti per l’articolo!
    Vorrei chiederti una informazione: E’ possibile fare degli INSERT nel db facebook?
    In pratica vorrei inserire degli eventi in automatico dal mio sito nella lista eventi facebook sul mio account anziché creare 2 eventi : 1 per mio sito altro per facebook. Mi spiego meglio: dal mio sito passo tramite una procedura specifica foto+titolo+testo formattato ad hoc e poi faccio un INSERT nella tabella eventi Facebook.

    Esiste un metodo che mi consente di effettuare questa operazione? Se sì, dove posso trovare una buona guida.

    Grazie mille!

    27 gennaio 2011, 15:42
  6. rocco

    ciao Ghido,
    sto cercando di creare un applicazione per facebook.
    questa app consiste nel far scegliere agli utenti una loro foto dal profilo o dai loro album, questa foto una volta scelta verrà poi modificata da un’applicazione flash e deve essere rimessa in facebook come foto del profilo..
    sono riuscito nella prima parte (prelevere le foto dagli album) tramite una serie di query fql, ma c’è un modo per caricare questa foto come immagine del profilo??
    si può fare tramite fql??
    o è impossibile??

    ps: uso la tua classe Facebook Graph API Class 1.2

    11 gennaio 2011, 16:43
  7. Salve Daniele,
    stiamo studiamo come integrare FB sul nostro portale roadsharing.com e la lettura dei tuoi post mi ha dato altre idee.

    Daniele

    11 ottobre 2010, 18:43
  8. Filippo

    ciao, è possibile fare delle query cercando tra tutti i contatti (

    7 ottobre 2010, 21:03
  9. Carlo

    Ciao scusami ma vado un tantino off topic, ho cercato molto su internet ma non ho mai trovato risposta.
    Ho provato un interrogazione FQL eseguendo questo comando:
    $facebook->api_client->fql_query(“*INTERROGAZIONE”);
    …ma la riga di codice completa che ho dato è la seguente (in pratica dovrei aver inserito il risultato della query nella variabile $risultato, almeno io penso):
    $risultato = $facebook->api_client->fql_query(“*INTERROGAZIONE”);

    * Dove INTERROGAZIONE è la mia interrogazione FQL.

    Il problema che la variabile $risultato rimane non valorizzata (cioè sempre ‘NULL’) ho fatto diverse prove ma nulla.

    Un ultima cosa (come avrai sicuramente capito sono nuovo a utilizzare FQL) … come faccio a visualizzare i dati di OUTPUT (magari utilizzando la funzione php echo) di un interrogazione (mi servirebbe un esempio teorico) su internet al solito non ho trovato nulla. Ti ringrazio per un eventuale risposta. Ciao

    25 agosto 2010, 09:39
    • Carlo

      …ho provato tantissime volte non c’è niente da fare l’FQL nelle mia app non funziona restituisce sempre valore NULL sulla variabile ho provato tantissime interrogazioni corrette (perchè provate qui: https://api.facebook.com/method/fql.query?query=*INTERROGAZIONE ) ma niente da fare….percaso si deve attivare qualcosa quando si crea l’applicazione per far funzionare le interrogazioni FQL?
      Puoi trovare una soluzione che sono in difficoltà. Grazie

      25 agosto 2010, 12:34
      • Carlo

        …ci sono riuscito con le graph API…se aspettavo te, si faceva notte!!! ciao

        26 agosto 2010, 17:14
  10. vincenzo

    Beh, sinceramente si può dire che in italiano c’è davvero poco e tu sei uno dei pochi che scrive anche buoni, anzi ottimi articolo sempre utili!!
    Ti ringrazio!!

    Ps. se io provo ad eseguire questa query:
    api_client->fql_query($query);
    ?>

    naturalmente $fb è già istanziata…
    non da errore ma mi blocca tutta la pagina facendola diventare dal punto in cui la eseguo vuota…

    24 luglio 2010, 09:39
  11. Antonio

    Ciao e complimenti per l’articolo!
    A me interessano molto questo tipo di articoli. Vorrei chiederti se saresti in grado di realizzare una toolbar (stile quelle che si vedono sulle varie Apps piu’ famose) con i classici pulsanti:

    Like, Bookmark, All permission e visualizzare un messaggio positivo nel caso l’utente sia fan dell’apps, abbia messo un bookmark e abbia permesso le all permission.

    Ciao,
    Antonio

    22 luglio 2010, 23:35
  12. Ciao! complimenti per l’articolo! :)
    Comunque si, queste cose sono molto utili, soprattutto se il wiki di facebook è così incasinato, complimenti :)

    6 maggio 2010, 15:34
  13. Ormai ti seguo da moltissimo, ed è proprio da qui che sono partito con al realizazione della mia prima applicazione per facebook dedicata alla mia ragazza, i tuoi post sono dettagliati quanto semplici nel capirli, quanto difficili interpretarli per una persona che è alle prime armi, ma comunque seguendoti e facendo prove sù prove i tuoi tutorial /Guide portano ad un buon risultato. personalmente:

    Ho seguito la tua guida per il layout fbml e sono riuscito a crearmelo, sono iscritto al gruppo facebook developer e sono riuscito a mettere il tasto bookmark, i permessi e i permessi e-mail per gli aggiornamenti, oltre alla possibilità di pubblicare in bacheca.

    tuttavia ci sarebbero delle cosette che vorrei chiederti, e se ossibile inserirle al più presto nella mia applicazione (Ancora non ho facebook connect) vorrei comunque poter mettere il pulsante fan (e solo il pulsante) senza gingilli vari, ho fatto varie prove ma nulla, sai un tag fbml speciale percaso? dato che per il book si usa () ?

    Grazie per una tua risposta!

    17 febbraio 2010, 22:13
    • Arrivo tardi, ho visto che hai già risolto per il pulsante “Diventa fan”.
      Tieni solo conto che in teoria Facebook vieta di nascondere con i CSS il logo ed il titolo della pagina fan:

      You can modify the Fan Box’s colors and fonts, but you cannot delete, obscure or modify:

      * Your Page title and icon
      * The Become a Fan button
      * The order of the elements (button, stream, fans)

      http://wiki.developers.facebook.com/index.php/Fb:fan

      18 febbraio 2010, 13:17
  14. Grazie ragazzi. Il mio dubbio era proprio questo: quando pubblico un articolo sullo sviluppo di applicazioni Facebook non ricevo molti commenti, quindi volevo capire se sono apprezzati o meno.

    In realtà poi di commenti ne ricevo fin troppi nel tempo, da utenti provenienti dai motori di ricerca, ma quello che mi interessa ora è far felici i lettori abituali.

    16 febbraio 2010, 11:07
    • Ghido, personalmente apprezzo un casino i tuoi post sulle applicazioni Facebook; sono sempre utili. Mi piacerebbe tu continuassi a pubblicarli.

      Personalmente, non commento spesso per il semplice fatto che i miei tempi sono molto ristretti.

      17 febbraio 2010, 13:55
      • Ti ringrazio, Sebastian. Continuerò allora a scrivere almeno un articolo a settimana a tema Facebook (applicazioni o trucchi di marketing). ;)

        17 febbraio 2010, 13:59
  15. fabio

    grande ghido!!! tutto quello che scrivi sulle applicazioni facebook è utilissimo!!!! continua così ;-)

    16 febbraio 2010, 10:24
  16. Ciao Daniele,
    a me queste cose interessano, di solito non commento perché non c’è molto da commentare non capendoci ancora molto. Ma le sto studiando visto che Facebook è ormai un’opportunità di marketing troppo grande per essere ignorata..
    Quindi continua così, offri risorse che non si trovano in rete tanto facilmente e questo è qualcosa di utilissimo!
    Ciao
    Paolo

    16 febbraio 2010, 09:24
  17. Bravo :) Mi sono tolto una bella curiosità…
    appena ho tempo sviluppo anche io qualche applicazione…

    15 febbraio 2010, 17:33

7 Citazioni