Come creare un applicazione per FaceBook (senza librerie php) - -oldpost-






Quattro anni fa sono stato il primo a scrivere un’articolo in italiano che trattasse la creazione di un’applicazione facebook ( “Come creare un’applicazione per facebook“) Da allora facebook ha cambiato un pò di cose. Questo articolo è un’aggiornamento del precedente.

Per realizzare un’apps facebook abbiamo bisogno di:

  • Un account autenticato su facebook
  • L’applicazione per lo sviluppo di facebook (Facebook Developer). link:
    http://www.facebook.com/developers/
  • Un server con php5 ( è possibile utilizzare qualsiasi linguaggio, ma questa guida è per php)

Una volta soddisfatti questi requisiti possiamo iniziare :

  1. Aprire l’applicazione ‘Facebook Developer’ e cliccare su ‘Setup New App’
  2. Quindi nella nuova schermata aggiungere il nome dell’applicazione, accettare i termini del contratto e proseguire.
  3. Ora dobbiamo impostare le informazioni riguardanti la nostra apps, compilando i campi delle schede (informazioni, Facebook integration)
    – Nella scheda Informazioni :
    Inserire il nome dell’applicazione, una sua descrizione, un’icona, il logo dell’apps, la lingua di base, un’indirizzo email con cui è possibile contattarvi e se volete aggiungere altri sviluppatori o amministratori.
    – Nella scheda Facebook Integration:
    Inserire l’indirizzo della vostra applicazione facebook ‘CANVAS NAME’ ( es: http://apps.facebook.com/<NOMEAPPLICAZIONE>) e l’url dove risiede la vostra apps nel web (http://<VOSTROSITO/CARTELLA>). Ovvero l’url dove è presente il file index.php che stiamo per creare.
  4. Salvare le modifiche e segnare le informazioni della vostra apps (ID Applicazione e App Secret).
  5. Copiare in un cartella del vostro sito la libreria php-sdk (il file facebook.php).
  6. Creare un file index.php dove inserire il seguente codice

 

Ora la nostra applicazione è identificata da due indirizzi:

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

Se tutto è andato bene, dovremmo vedere ‘ciao ‘ seguito dal nostro nome.

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

Breve spiegazione del codice:

  • le prime 3 righe (2-3-4) impostano le variabili per poter effettuare l’autorizzazione con facebook.
  • la riga 6 carica il codice che facebook passa ad un’applicazione, una volta che l’autenticazione è andata a buon fine (protocollo OAuth 2.0).
  • riga 8 -13 : Se non c’è questo codice non si è autenticati. Quindi nelle rige 9-10 creiamo l’url di autenticazione, passando l’app id e l’app secret e nellariga 12 ricarichiamo la pagina con questo url
  • Arriviamo alla riga 15 solo se siamo autenticati (variabie $code impostata). In questa riga creiamo il token url per ottenere l’access token (riga 19) per effettuare chiamate autorizzare alle GRAPH API
  • Infatti, nella riga 21 effettuiamo una semplice connessione per ottenere i dati dell’utente GRAPH API (/me).
  • I dati sono in json, quindi li decodifichiamo nella variabile $user.
  • A questo punto si mostra il nome dell’utente, presente nell’oggetto ‘user’.
  • extra; Per vedere tutte le informazioni presenti nell’oggetto ‘user’, possiamo fare un semplice debug dell’oggetto : print_r($user);

Ovviamente, questo è solo uno script d’esempio, sa cui partite lo studio.
In futuro scrivero nuovi articoli per utilizzare le Graph Api.

Approfondimenti :
Creare un’applicazione facebook : canvas Page e canvas Url
Creare un applicazione per facebook : Invitare gli amici ed inviare notifiche e messaggi

Link : Gennaro Varriale su Facebook:

 

51 thoughts on “Come creare un applicazione per FaceBook (senza librerie php) - -oldpost-

  1. Ciao Gennaro
    vorrei sapere come posso realizzare ciò che tu sostanzialmente hai già fatto. Mi spiego: sono riuscita a capire come procedere con l’accesso utilizzando le credenziali di fb ora però vorrei utilizzare quelle credenziali utilizzando la possibilità di effettuare un commento solo a persone autenticate…in parte l’ho fatto ma nn capisco come fare per mantenere i commenti fatti …(l’ho fatto utilizzando js e jquery)

  2. ciao Gennaro,
    ho letto con interesse il tuo codice e ho capito perfettamente quello che fa il tuo codice.
    Su un mio sito vorrei implementare una semplice funzione, che mi permetta di ottenere(non so neppure se sia possibile) lo userid di facebook dell’utente che chiama la mia pagina e attraverso questo mostrargli alcuni suoi dati (profile image, nome ecc…), ma senza dovergli chiedere alcuna autorizzazione.
    Non sono interessato ai social plugin, vorrei creare qualcosa di personalizzato, di mio.
    Ho provato con le librerie sdk (esiste una versione sdk per coldfusion identica all’sdk php), ma quando mi collego al mio sito, ho bisogno di dare l’autorizzazione all’applicazione per poter ottenere i dati dall’user object. Vorrei che non ce ne fosse bisogno, ma come ho già detto prima, dopo queste ultime modifiche dell’oauth non so neppure se sia possibile.

    Ti ringrazio in anticipo e ti faccio i complimenti per la tua chiarezza, è molto difficile trovare pagine in italiano che siano chiare sullo sviluppo web.

    1. Ciao Davide,
      non è possibile ricavare l’uid dell’utente senza autorizzazione. Prima era possibile ed è stato sfruttato da varie società per personalizzare banner/ pubblicità per utente.
      Devi per forza di cose far effettuare l’autenticazione ai tuoi utenti, magari una sola volta, per poi chiedergli i permessi off-line.

      1. Ciao Gennaro,
        pensavo anche io che fosse così come dici tu ma a quanto pare non lo è…

        Mi sono imbattuto in una pagina che mi da il benvenuto riportando il mio nome e cognome e mi invita a diventare fan.

        Mi chiedo come sia possibile poichè l’oggetto JSON relativo alla variabile signed_request che Facebook invia alla pagina contiene diverse informazioni ma non l’id….

  3. ciao vorrei kiederti dato ke non ne so molto d’informatica vorrei capire se e possibile copiare un account e vedere cio ke fa l’altro senza ke se ne accorga se e si potresti spiegarmi come fare

  4. Ciao, non capisco bene il funzionamento della richiesta delle autorizzazione all’applicazione da parte degli utenti(mi serve unicamente il suo id). Quali sono le procedure da seguire(se riesci con relativo codice) per chiedere tali autorizzazioni? Ho provato diversi link ma non riesco a capire bene cosa devo scrivere nel codice…Grazie

    1. Sono riuscito nell’intento però volevo sapere se era possibile togliere il bottone di login a facebook al primo accesso all’applicazione e utilizzate subito l’oauth per l’autorizzazione una volta si clicca sul tag dell’applicazione.

      grazie

  5. Ciao…Altra domanda….come mai si hanno problemi di aggiornamento immediato nell’utilizzare il css nelle applicazioni fb? C’è un modo per evitare questo problema?

  6. Ho letto che da Ottobre qualsiasi applicazione fb avrà bisogno di un certificato SSL.
    Basta sostituire “Website:Indirizzo del sito” con quello nuovo in https e tutto continua a funzionare tranquillamente?

        1. Benissimo!!!
          Pensavo di dover cambiare l’sdk-php sotto..di doverla sostituire con la nuova e dover cambiare il codice!!

          Quindi un’app come quella di esempio dell’articolo (sopra), se spostata su un dominio con cetificato, continuerà a funzionare senza problemi…perfetto!
          Grazie davvero!!!

  7. Ciao, grazie mille delle tue interessanti guide….Ti volevo chiedere una cosa relativa alla creazione delle applicazioni fb: è possibile, che tu sappia, creare un’applicazione limitata all’uso dei soli tuoi amici? Se si(anche se non penso visto che fb è un mezzo troppo pubblico per far creare applicazioni limitate), in tal caso, avresti qualche traccia/idea da darmi per realizzarla?

    Grazie!

    1. Intendi che possano usarla solo i tuoi amici? o solo gli amici di chi la installa?
      La seconda ovviamente è un’assurdo, la prima puoi risolvere con un’ escapotaage.
      1. Memorizza la lista dei tuoi amici in un DB o un file.
      2. Quando l’utente installa l’apps vede una landing page.
      3. Se l’utente appartiene alla lista (da DB da file) allora potrà accedere, altrimenti resta nella landing page.

      1. Si intendevo la prima, grazie….ti chiedo un’altra cosa visto che sei così gentile e preparato. Come faccio a scrivere sulla bacheca della mia pagina(Prodotto/Servizio) che utilizza la mia applicazione(in stile classico delle applicazioni con titolo,caption,link ecc…), dall’applicazione stessa? ho visto cercando in giro che esistono dei modi, ma non riesco a metterli in pratica. Tu mi sapresti dare una mano in questo?

        Grazie

        1. Ho provato a fare questo:
          //new della classe facebook che setta app_id e app_secret
          $fb = new FB(‘publish_stream’);
          // Ottenere l’Application Token
          $site_token = file_get_contents(“https://graph.facebook.com/oauth/access_token?type=client_cred&client_id=”.$app_id.”&client_secret=”.$app_secret);
          $name= “Prova”;
          $link=”…”;
          $description=”Interessante!”;
          $picture=”…”;
          $attachment = array( ‘access_token’ => $site_token,
          ‘name’ => $name,
          ‘link’ => $link,
          ‘description’ => $description,
          ‘picture’ => $picture
          );
          $fb->api(“/xxxID_PAGINA IN CUI POSTARExxxxx/feed”, ‘POST’, $attachment);

          Il risultato è un popup che mi fa fare il login a facebook e quindi entrare nella mia home personale(non della pagina), senza scrivere niente sulla bacheca della pagina. cosa sbaglio?
          In altri post usano la stream.publish, forse devo usare quella? Ma come?

  8. Ciao,

    credi sia possibile seguendo la ua speigazione creare un’applicazione facebook che permetta di cambiare il nome alle pagine con più di 100 iscritti?
    Grazie mille =)
    Luca

  9. salve a letto questo articolo e come tanti altri articoli ma non sono riuscito ancora a capire cosa devo impostare come nome aplicazione negli scrpt php, cioè il nome aplicazione lo devo inventare devo crearllo in in qualche paggina del mio accout facebook, ho dell mio spazzio web che devo creare un app per facebook, il mio unico interesse in questa cosa e avere un mi piace sul mio sito web simile a questa paggina con il mio logo e la mia paggina di facebook…
    ps la ringrazzio anticipatamente della risposta e dell aiuto

  10. ciao sto cercando di eseguire le tue istruzioni per creare un applicazione per FaceBook.
    Non riesco a procedere oltre il passo 3 quello in cui scrivi di impostare le informazioni riguardanti la nostra apps, compilando i campi delle schede (informazioni, Facebook integration)…
    Infatti dopo aver cliccato sul pulsante con scritto + crea applicazione
    (finestra di dialogo New App)
    scrivo il nome della applicazione,
    seleziono su accetto le condizioni
    clicco su continua
    digito dentro Controllo di sicurezza il testo captha
    Appena do invio con il testo ricopiato compare la scritta ” tuo account deve essere verificato prima di poter fare questa azione. Per favore, verifica il tuo account inserendo il tuo mobile phone o la credit card. ”
    Cosa devo fare ??
    Se clicco su mobile phone chiede
    Inserisci il codice di conferma che ti è stato inviato sul cellulare.
    io non ho questo codice e non so come richiederlo
    non so dove sbattere la testa per continuare
    Spero davvero tu possa spiegarmi come andare avanti
    Claudia

    1. Ciao Claudia,
      per realizzare apps bisogna possedere un’account facebook verificato.
      Se non ti arriva il codice sul celluare è perchè FB ha problemi con i gestori italiani. Per risolvere devi associare la tua carta di credito.
      Dovresti farlo in account, se non ricordo male.

  11. Ciao Gennaro,

    Inanzitutto ti ringrazio moltissimo per quello che fai. Vorrei chiederti una cosa. Come si fa a mettere su una pagina fb l’applicazione multi friend selector? :/ io ci capisco ben poco! :/ ah, si e grazie con tutto il cuore in anticipo! Ale

  12. Ciao! Innanzitutto grazie mille per l’ottima guida. Purtroppo ho riscontrato questo problema, una volta effettuata l’autenticazione mi da questo errore, failed to open stream: No such file or directory. A cosa potrebbe essere dovuto?

    1. l’errore indica problemi nell’apertura di uno stream. Se hai eseguito il mio codice questo può avvenire o nella riga 15 o 23.
      Vedi quale delle due, e cerca di capire cosa sbagli.
      Per farlo fai un debug delle variabili prima di utilizzare, per esempio per la riga 19:
      aggiungi nella riga 18 : echo “Url per token : “.$token_url ;
      dovrebbe visualizzarti un url corretto per autenticare, che puoi eseguire anche nel browser.

  13. Ciao, ho seguito passo passo il tuo articolo. Ora ho l’applicazione che, secondo quel che ho capito, dovrebbe riproporre nella Canvas quello che avviene sul mio sito web, con i files php che sono sul sito, copiati nella directory web /apps del mio sito come hai scritto.
    Se l’applicazione prevede che venga eseguito una query di un .php che richiama un DBase ( del mio sito web) questo dovrebbe funzionare, giusto? Inoltre richiede la presenza del secure tab url, ma il mio hosting non è in https… Sto navigando nel buio…

    1. L’articolo è inteso per ottenere le basi per la creazione corretta di un’ apps su facebook. Non ho scritto di caricare un sito web, infatti l’obiettivo di questo articolo è di ottenere nel canvas semplicemente il nome dell’utente…
      Non è necessario inserire un secure url, infatti nell’articolo non ne ho parlato ;)

      1. ok, allora scendo nel particolare…
        diciamo che il core in php del mio sito web, dovrebbe riproporsi nella canvas dell’app di Facebook. e’ possibile questa cosa?

  14. Ciao!
    Non riesco a creare una nuova applicazione, dopo l’inserimento del nome, aver accettato le condizioni e infine aver messo il codice del controllo di sicurezza, mi da questo messaggio “Sorry, something went wrong.We’re working on getting this fixed as soon as we can.”

    Succede solo a me?AIUTO PLEASE!!

Leave a Reply to Luigino Cancel reply

Your email address will not be published. Required fields are marked *