Come creare un applicazione per FaceBook - -oldpost-





In quest’ultima settimana ho studiato le api di facebook e ho incominciato a giocherellare creando qualche applicazione. Ho notato però, che in rete non c’è molta documentazione, specialmente in italiano. Per realizzare un’applicazione per facebook abbiamo bisogno di :

  • Un account su facebook
  • L’applicazione per lo sviluppo di facebook (Facebook Developer).
    Per installarla fare click su ‘Add Facebook Developer Application’
  • Un server con php5 Se non lo abbiamo, si può utilizzare un server gratuito
  • La libreria per php5 di facebook.

UPDATE : Versione aggiornata dell’articolo su : Come creare un applicazione per FaceBook (senza librerie php)

Una volta soddisfatti questi requisiti possiamo iniziare :


  1. Aprire l’applicazione ‘Facebook Developer’ e cliccare su ‘Setup New Application’ f01
  2. Quindi nella nuova schermata aggiungere il nome dell’applicazione (1) , accettare i termini del contratto e cliccare sul link ‘Optional Fields’ (2) per aprire un nuovo pannello per inserire il resto delle informazioni
    f02
  3. Nella sezione ‘Optional Fields’ inserire
    1 ) l’indirizzo di callback , ovvero l’indirizzo dove risiede la nostra applicazione, qualcosa tipo www.miosito.it/nomeapplicazione/
    2) il nome che identifica l’applicazione in facebook (può coincidere con quello della tua applicazione, se non è stato già assegnato)
    3) Selezionare some tipo di applicazione ‘Web Site’
    4) Selezionare ‘YES’ per indicare a Facebook, che la tua applicazione può essere aggiunta dagli utenti.
    Quest’ultima opzione aprirà una nuova sezione da riempire
    f03
  4. Nella nuova sezione riempire solo i seguenti campi:
    1)Inserire il link a cui gli utenti verranno indirizzati dopo aver aggiunto la nostra applicazione ovvero : http://apps.facebook.com/nomeapplicazione
    2)Inserire un testo che vogliamo venga visualizzato nel profilo utente se non è specificato dalla nostra applicazione (es. ‘Ciao Mondo’)
    3)Inserire il link della nostra applicazione su facebook ovvero : http://apps.facebook.com/nomeapplicazione
    4) lasciamo gli altri campi invariati e clicchiamo su ‘Submit’
    f04

A questo punto la nostra applicazione è stata creata e FaceBook gli assegnato dei valori che dobbiamo segnarci, perchè dobbiamo inserirli nel nostro programmino presente sul nostro server. I valori sono la chiave dell’applicazione (API KEY) ed un numero segreto (SECRET). Per vedere questi valori andare nella lista delle ‘mie applicazioni

Ora dobbiamo creare la nostra applicazione vera e propria, per farlo scarichiamo la libreria php5 per facebook , e copiamo il file facebook.php sul nostro sito e creiamo due file : ‘appinclude.php’ e ‘index.php

appinclude.php

ovviamente inseriamo i valori della chiave dell’applicazione (API KEY), il numero segreto (SECRET) e l’indirizzo corretto del nostro sito.


index.php

Il nucleo della nostra applicazione e tutto nel file index.php, per ora ci limitiamo a scrivere un breve messagio, nei successivi articoli, vedremo di creare qualcosa di più interessante.

Ora la nostra applicazione è identificata da due indirizzi:

  • http://www.miosito.it/nomeapplicazione/ : indrizzo di callback (che viene chiamato da facebook direttamente)
  • http://apps.facebook.com/nomeapplicazione/ : indirizzo del applicazione su facebook (canvas url)

Per provarla utilizziamo uno dei due indirizzi ed aggiungiamo l’applicazione al nostro account facebook.
Se tutto è andato bene, dovremmo vedere ‘ciao ‘ seguito dal nostro nome, mentre se andiamo nel nostro profilo vi sarà una nuova sezione ‘nomeapplicazione’ con all’interno il messaggio ‘Ciao Mondo’.

Attenzione: Nel copiare ed incollare il codice, state attenti agli apici!

Link : Gennaro Varriale su Facebook:

 

375 pensieri su “Come creare un applicazione per FaceBook - -oldpost-

  1. Ci sono molte guide simili in rete, ma forse questa è la più chiara. Mi sono rimasti alcuni dubbi: Si paga? e poi è spam se la mia applicazione è un motore di ricerca o un form di inserzioni che puntano a un mio sito?

    1. 1. A parte le immagini, che non corrispondono la procedura è ancora corretta.
      2. Sono orgoglioso che l’articolo sia del 2007, in quel periodo ero uno dei pochi sviluppatori italiani ;)
      3. C’è nell’articolo stesso, un link ad una guida più aggiornata.
      4. Nonostante tutto, quando avrò un pò di tempo, migliorerò l’articolo ;)

  2. Sono riuscito ad effettuare l’autenticazione con oauth però al momento del primo accesso all’applicazione viene creato un bottone con link alla login di facebook e se si è gia loggati ti rimanda all’oauth. E’ possibile evitare tale passaggio e una volta cliccato sul tab dell’applicazione nella mia pagina viene visualizzato subito l’oauth?

    1. dovresti controllare se presente già il token o code e solo nel caso negativo mostrare il pulsante del login.
      Inoltre se un’utente è collegato e clicca sul pulsante di login, c’è subito un redirect sulla stessa pagina (fb controlla e rimanda all’url di callback)

  3. Ciao, avevo una domanda per te:
    per avere accesso ad un’applicazione è obbligatorio fornire il consenso tramite OAuth Dialog o si può fare anche senza?
    Perche nella mia applicazione che sto creando quando faccio

    $_SESSION[‘signed_request’]= $facebook->getSignedRequest();
    active_user_id = $_SESSION[‘signed_request’][‘user_id’];

    e stampo active_user_id con echo, se non accedo io ma un utente qualsiasi non mi stampa niente come user_id.
    Quindi pensavo a qualche problema relativo all’autorizzazione dei propri dati all’applicazione. Sbaglio?

      1. Ma quindi esiste un modo per avere l’id utente senza usare l’oauth? Forse usando getUser e getLoginUrl delle librerie? Inoltre è per forza necessario usare l’oauth dialog anche se non vengono utilizzati alcun dato dell’utente che accede all’applicazione?

        Grazie ancora per la tua disponibilità

          1. quindi quali comandi mi servono per utilizzare oauth2…seguendo fbdeveloper non sono riuscito nell’intento di utilizzarlo, mi sapresti essere di aiuto?

          2. In qualche modo sono riuscito a prendere le credenziali degli utenti, però ho il problema che per ottenere codice e token di accesso dell’utente deve cliccare su un logo/link”FACEBOOK” che fa il tutto. Io vorrei però farlo senza tale passaggio, nel senso che la prima volta che entra nell’applicazione viene lanciata subito la oauth senza dover cliccare su nessun link. Hai idee a proposito? Ti posto il codice:

            da index.php

            header(“Location: https://www.facebook.com/dialog/oauth?client_id=“.$app_id.”&redirect_uri=”.urlencode(‘xxx/callback_url.php’).”&scope=user_about_me”);
            ….

            in callback_url.php

            id;
            $_SESSION[‘xxx’]=$facebook_id;
            header(“Location: xxx/index.php”);
            }
            else
            {
            //do error stuff
            }
            }
            }
            else
            {
            //do error stuff
            }
            ?>

  4. Facebook mi obbliga a dare il numero di cellulare per poter creare l’applicazione! Stanno bene così. Rinuncerò a creare l’applicazione.

  5. gennaro scusa ma alle persone che mettono mi piace non appare “vai all’applicazione” anche perchè io non ho inserito niente però io non ho un sito e non so neanche dove crearlo quindi per mettere i codici tu dici che devi mettere il sito ma io non c’e’ l ‘ho , mi potresti aiutare?
    :) :)

  6. Ciao…ho realizzato un’applicazione facebook e funziona correttamente ma se scrivo il nome della mia applicazione su cerca nn mi appare…eppure ho più di 50 utenti registrati…ho provato a cliccare su sign up ma la pagina mi si carica in continuazione e non mi appare nulla…quale potrebbe essere il problema?

  7. Ciao ho un problema!!!!
    Quando provo a collegarmi alla pagina facebook developer e poi clicco su set new app mi dice che devo inserire la carta di credito o il mio cellulare per poter creare applicazioni???
    Sbaglio io o è normale???
    Grazie in anticipo
    Patrizio

  8. Ciao!
    ho seguito passo passo la guida ma, quando accedo alla cartella del mio sito, mi compare questo errore:

    Fatal error: require_once() [function.require]: Failed opening required ‘MY_DIR/facebook-platform/client/facebook.php’ (include_path=’.:’) in /membri/ilmionome/MY_DIR/index.php on line 9

    sapresti aiutarmi a capire il perchè?
    grazie

  9. Ciao, volevo chiedere a Gennaro se è possibile fare una semplice app che mi crea nel menù a sx di una pagina che gestisco, un link al mio sito web.

    E se si può fare, è possibile non utilizzare il php ma C#?
    ho letto sulla guida developer che è supportato e siccome il mio sito attualmente è in aspx vorrei usare lo stesso server per appoggiarci la pagina dell’applicativo facebook.

    Grazie in Anticipo

      1. Ciao Gennaro, ti ringrazio per la risposta e ne approfitto x chiederti come faccio a gestire il menù di sinistra delle pagine facebook..

        Mi spiego meglio: non riesco a capire come fare a posizionare una voce all’interno del menù di sinistra, esiste una guida che spiega come gestire il posizionamento nelle pagine facebook?

        Ti ringrazio

      2. Hai detto che si può usare qualsiasi linguaggio io vorrei usare Classic ASP perchè il mio server non supporta php, però come faccio ad autenticare l’applicazione se la classe che facebook usa allo scopo presente nel file facebook.php è scritta in linguaggio php?
        Esistono file da includere per autenticare l’applicazione scritte in ASP ? L’Autenticazione è necessaria ? Ti ringrazio per la tua attenzione

        1. Non è necessario utilizzare le classi facebook di php. Io che programmo principalmente in php non le uso..
          Devi studiarti il sistema di autenticazione (oauth) che usa facebook e quindi replicarlo nel linguaggio che utilizzi.
          Sto pianificando di creare un’articolo a riguardo, ma purtroppo non riesco ancora a trovare il tempo per farlo.

  10. Ciao, ma come si fa a mettere un link dentro la descrizione oppure il ‘caption’ di un POST?

    Io ho provato con : $attachment = array(
    ‘name’ => $title,
    ‘link’ => $link,
    ‘description’ => “www.google.it”,
    ‘caption’ => “www.google.it”,

    …. ma facendo cosi, vengono pubblicate entrambe come testo, non come link cliccabili.

  11. Anche a me da lo stesso problema di alessandro..cioè ho messo il numero di telefono ma ancora non mi è arrivato il codice di verifica per creare le applicazioni.come posso fare???
    eventualmente per cortesia rispondetemi su bnuovo@hotmail.it grazie

  12. salve vorrei creare un applicazione su facebook in php e allora sono andato sull apllicazione “sviluppatore” e ho cliccato su “crea una nuova applicazione” ma mi esce il seguente messaggio “Il tuo account deve essere verificato prima di poter fare questa azione. Per favore, verifica il tuo account inserendo il tuo tele…fono cellulare o la carta di credito.”. Io non ho una carta di credio quindi ho immesso il numero di cellulare ma NON mi arriva il codice di conferma sul cellulare sono diversi giorni che provo anche con diversi numeri ma nn mi arriva mai nessun messaggio e quindi non mi permette di creare l’app . qualcuno sa come posso fare per verificare il mio account? grazie mille a tutti

    1. Sembrerebbe un problema di gestore telefonico. Inizialmente, si diceva che funzionava solo con numeri Wind. Ma anche questo mi sembra non vero. Prova ad inserire un gestore differente (prova sempre prima Wind).

      1. Ciao Gennaro. Ma come si fa ad inserire altri numeri se invece lui ti chiede sempre il codice di conferma? Ogni volta che clicco su inserisci numero Facebook mi da il form d’inserimento codice

  13. Ciao,
    avrei un grosso consiglio da chiederti/vi..
    vorrei pubblicare un post sulla bacheca di un mio amico a nome del mio amico e vorrei farlo con un “chrone” giornaliero.

    Ho il token con i giusti permessi e l’index con il codice.
    Se mi loggo manualmente a nome del mio amico, tutto funziona.
    Vorrei farlo senza essere loggato.
    Io ho provato cosi:
    1-Mi sono sloggato
    2-Ho chiamato la pagina da:
    http://www.nomesito.it/index.php?access_token=$tok_con_permessi_off_line_mio_amico
    3-funziona, ma solo dal mio pc!!!

    Quando lo provo su altri pc, invece, la GET_[] che aspetta il token viene sovrascritta da quella di facebook (?session={“session_key”:”..”,”uid”:”..”,”expires”:0,”secret”:”…”,”access_token”:”..”})

    Quindi perdo il token che avevo passato e l’autenticazione fallisce (appare lo script js di connessione manuale).

    Sbaglio qualcosa secondo te? C’è una procedura migliore per fare ciò?

      1. Grazie per la velocità di risposta!!
        Il token non devo passarlo per forza, il problema è che la procedura non mi parte, perchè l’utente non è loggato.

        Per loggarmi uso :

        $this->session = json_decode($_REQUEST['session']);
        $this->uid = $this->session->uid;

        if(empty($this->uid)){
        $this->facebook->session;
        $this->facebook->getLoginUrl(
        array(
        'canvas' => 1,
        'fbconnect' => 0,
        'req_perms' => $permessi,
        'next' => MY_URL . '/'
        )
        );

        1. Ho letto un forum dove dicevano di salvarti $facebook->getSession() nel D.B. ed utilizzarla estraendola da là.

          CREDO quindi che la session_key abbia validità infinita.

          1. Scusami.. ma non ho capito.
            Ti spiego quello che ho capito..sicuramente sbaglio qualcosa.
            Il token è relativo all’applicazione( giusto?)
            Se scrivo facebook->api(“/$uid/feed?access_token=xxxx”, ‘POST’, $attachment); pubblica a nome del proprietario dell’applicazione(sbaglio?)
            Io con il metodo post posso usare i seguenti parametri per l’attachment: message, picture, link, name, caption ,description ,source,actions e privacy
            Tra questi paramentri non c’è “mittente”…quindi quello che non capisco è:
            quando chiamo facebook->api(“/$uid/feed”, ‘POST’, $attachment); come faccio a dirgli di scrivere a nome del propritario della bacheca in cui scrivo($uid)?

          2. RISOLTO finalmente!! i cookie settati a true nel costruttore creavano problemi.. non so perchè.. grazieee

  14. Ciao Gennaro, amministro una pagina Facebook ma non possiedo un account (e non ho intenzione di crearlo :) ). Vorrei far arrivare delle notifiche a tutte le persone a cui “piace” la mia pagina (quelli che prima si chiamavano fan). C’è già un servizio per le Pagine che si chiama Aggiornamento, ma in pratica manda dei messaggi che non vengono notificati con l’icona rossa.
    Il tuo procedimento funziona anche con le Pagine o c’è bisogno per forza di un account?

    1. Non ho indicato nessun procedimento..;)
      L’unico modo che hai per inviare messaggi ai tuoi likers è quello che hai detto, ovvero tramite aggiornamenti della pagina.
      Creare un’account non cambierebbe nulla.

      1. Dopo aver letto la tua risposta che suona come “cado dalle nuvole”, mi sono reso conto di aver sbagliato qualcosa…

        Sono arrivato in questa pagina tramite questo blog, il post si chiamava “inviare notifiche personalizzate usando PHP” e rimandava qui per tutte le spiegazioni.
        In effetti avrei dovuto leggere meglio, il tuo blog era indicato solo come guida generica per creare un’app, non per creare un’app per “inviare notifiche personalizzate”. Ci credo che non hai capito bene il senso della mia domanda… :D

        Ti chiedo scusa e ti ringrazio comunque per la rapida risposta.

  15. Ciao a tutti,
    chiedo un consiglio, magari è un problema che voi avete già affrontato!
    Ma non è possibile cancellare un post fatto da me, tramite app php?
    Io ho l’id di quel post.
    Se uso la console: http://developers.facebook.com/docs/reference/rest/stream.remove/
    ci riesco normalmente.
    Se invece uso il metodo https://api.facebook.com/method/stream.remove?
    post_id=$id_mio_post&access_token=$token_ottenuto
    Mi risponde con un errore.
    Probabilmente sbaglio a creare il token, mi sapresti spiegare come si crea questo token (lato php)?
    Io ho provato in mille modi.. ma senza buoni risultati :(

      1. Certo certo, ho: ‘publish_stream,email,offline_access,read_stream’
        La console la utilizzo tramite la mia applicazione… ed effettivamente cancella.
        Se invece lo faccio tramite app, ottengo il medesimo URI, ma con token diverso e a quel punto non cancella.
        Io penso che il problema sia li’..

  16. Ciao,
    grazie e complimenti per la guida!
    Grazie a questa ho iniziato a scrivere le mie prime apps.
    Avevo un dubbio, sicuramente è una sciocchezza…
    Come si trattano i caratteri speciali (come ‘\n’ ‘%80’ )
    nella funzione streamPublish delle Graph Api?

    1. Non sono permessi tutti i caratteri (es. non si può amdare a capo, con \n).
      Per gli altri l’inserimento è normale, ricordati di mettere il meta utf-8 nella pagina html

  17. E’ possibile creare un link esterno ad esempio http://www.altervista.com/scherzo.html dove cliccando viene stampato un messaggio qualsiasi ma con il nome corretto dell’amico che ha aperto il link es. angela rossi è mia amica in facebook io sulla mia bacheca aggiungo un link scrivendo il messaggio sottostante “questo sito web ha contenuto pornografico è riservato esclusivamente a un pubblico adulto” angela rossi clicca sul link e si apre una pagina dove c’è scritto il suo nome esatto :”angela rossi immaginavo che avresti cliccato” che ne so una c….ta del genere! è possibile fare questo?

  18. Ciao, mi complimento per la chiarezza della tua guida.
    Ho fatto tutti i passaggi che hai scritto, ma a mè da questo errore…
    Sai darmi un’aiuto? Grazie.
    http://apps.facebook.com/mia_app_prova/

    ” Warning: Unexpected character in input: ”’ (ASCII=39) state=1 in /web/htdocs/www.laserglass.it/home/facebookapp/prova1/index.php on line 3

    Warning: Unexpected character in input: ”’ (ASCII=39) state=1 in /web/htdocs/www.laserglass.it/home/facebookapp/prova1/appinclude.php on line 7

    Warning: include_once(jsonwrapper/jsonwrapper.php) [function.include-once]: failed to open stream: No such file or directory in /web/htdocs/www.laserglass.it/home/facebookapp/prova1/facebookapi_php5_restlib.php on line 35

    Warning: include_once() [function.include]: Failed opening ‘jsonwrapper/jsonwrapper.php’ for inclusion (include_path=’.:/php5/lib/php/’) in /web/htdocs/www.laserglass.it/home/facebookapp/prova1/facebookapi_php5_restlib.php on line 35 “

    1. i primi due errori forse sono dovuti al copia ed incolla del codice, che avrà messo dei caratteri speciali, prova a scrivere l’apice direttamente.
      i secondi due invece dalla mancanza della libreria jsonwrapper.php

      Questa giuda ha ormai quasi 4 anni (anche se ancora funzionante) ;) facebook ha cambiato libreria, prsto scriverò un nuovo articolo più ricco.

      Se non vuoi aspettare scaricati la libreria qui:
      http://github.com/facebook/php-sdk/tarball/master

      e prova con questo codice per testare

  19. Ancora devo iniziare a sviluppare applicazioni per Facebook e mi sono imbattuto in questa guida.

    Non posso non soffermarmi a togliermi il cappello di fronte a tanta completezza e disponibilità :)

    Applausone a Gennaro!

  20. Ciao,non mi funziona niente; mi viene fuori questo messaggio: Fatal error: Call to undefined method Facebook::require_login() in /membri/applicazionifb/appinclude.php on line 6 che devo fare?

  21. Ciao ragazzi,
    uso da poco FB e non capisco bene come creare la mia applicazione. Ci sono un sacco di cose che io ancora non conosco. Ad esempio, per nome dell’applicazione posso mettere qualsiasi nome io voglia del tipo “Login in my website”?

Rispondi a patrizio Annulla risposta

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *