Creare un applicazione per facebook : Invitare gli amici ed inviare notifiche e messaggi - -oldpost-





invita-amici-facebookVediamo come creare la classica form che invia una richiesta di installare l’applicazione selezionado gli amici dell’utente.
Per farlo utilizzeremo il tag fbml fb:multi-friend-selector insieme a fb:request-form.
Per quanto riguada l’invio di messaggi agli utenti utizzeremo le api di facebook. In questo caso il metodo notification.send che ci permette di inviarne sia ad un gruppo di utenti, che ad un singolo utente.

Il codice per mostrare la form è la seguente :

In action va posta la pagina dove l’utente arriverà dopo aver inviatato gli amici (o se ignora il form cliccando il tasto skip/salta)
In content inseriamo il messagio da mostrare agli amici per convincerli ad installare la nostra applicazione ed in actiontext il testo da mostrare nel pulsante per iniziare l’azione di invito.

Per inviare un messaggio diretto all’utente , invece, dobbiamo utilizzare le api di Facebook. In questo caso il metodo notifications_send.
Nella nostra applicazione facebook , inseriamo la seguente riga:

$facebook è il nostro client facebook, vedere l’articolo Come creare un applicazione per FaceBook per riferimento,
Mentre $uid è l’id dell’utente a cui inviare il messaggio e ‘user_to_user è il parametro da passare al metodo notifications_send per inviare un messaggio diretto dall’utente attivo all’utente $uid.

Se invece vogliamo inviare messaggi o notifiche a più utenti da parte dalla nostra applicazione, allora useremo il parametro
app_to_user in questo modo

E’ possibile inviare notifiche e messaggi solo agli amici dell’utente o agli utenti dell’applicazione altrimenti il metodo verrà ignorato

UPDATE : Dal 1 marzo facebook non permette più l’invio delle notifiche. Lascio il codice per riferimento, ma notification_send è una funzione deprecata

 

77 pensieri su “Creare un applicazione per facebook : Invitare gli amici ed inviare notifiche e messaggi - -oldpost-

  1. ciao gennaro…spero tu possa aiutarmi viste le tue capacità…con il nuovo layout di facebook l’app invite friends di chrome non funziona più perchè l’invite box che si apriva con il vecchio layout ora non esiste più.posso in qualche modo farla tornare o agirare questa cosa per invitare tutti gli amici con un colpo solo…..ho provato timeline remove ma va a modificare la struttura del diario ma non mi ridà l’invite box.

    ho visto che rispondi e ti dedichi parecchio quindi se potessi aiutarmi te ne sarei immensamente grato.

  2. ciao a tutti, ho installato l’applicazione static fbml con il fine di aggiungere un tasto “invita amici” in modo che tutti gli iscritti alla mia pagina potessero suggerirla ai loro amici. ma non funziona. ho trovato questo codice:

    <fb:request-form method="post" type="Your Fan Page Name Here." invite="true" content="Check out Your Fan Page Name Here on Facebook!”>

    che limita la selezione a tre amici ma oltretutto non funzionare per niente e dice sempre: non puoi più aggiungere amici per oggi.

    qualcuno di voi conosce un altro codice o un altro sistema per consentire ai proprio amici di suggerire i loro senza limiti?
    ho trovato una pagina che funziona bene ma non so come hanno fatto, è questa:

    https://www.facebook.com/taosilenzio

  3. Ciao io ho un’applicazione per facebook. Quando una persona si iscrive, vorrei che l’applicazione inviasse un messaggio o un invito a tutti i suoi amici.

    Il massimo sarebbe inviare un invito personalizzato, in modo che quando gli amici cliccano sull’invito, possa arrivare all’applicazione un parametro che indica “sono amico di xyz”.

    Come posso fare?

    Grazie

  4. ciao vorrei aggiungere alla mia official page facebook l’opzione invita amici ma mi dice che il limite e di 3 persone ovvero se un membro del mio gruppo vuole invitare ad unirsi al gruppo dei suoi amici ne puo solo invitare 3 e spesso mi dice che l’opzione non è funzionante! io ho copiato il tuo codice iniziale dopo aver scaricato FBML STATICO ! cosa posso fare per risolvere la cosa?

  5. Ciao posso farti una domanda? io ho diverse app su facebook… tutte con diversi utenti… esiste un metodo per contattare tutti gli utenti che hanno accettatto l’app una mail o un messaggio?

    grazie infinite

  6. Ciao scusami !

    volevo semplicemente sapere come fare ad aumentare il limite delle persone alle quali si possono mandare i suggerimenti per una pagina con FBML , io attualmente col multi-friend-selector impostato da me non ne fa mandare più di 6 al giorno, io vorrei mandare richieste illimitate ma vedo altri admin che hanno il limite impostato a 15 o 25 ecc
    Io ho settato così :

    <fb:request-form method="get" action='http://www.facebook.com/pages/Interisti-Rosiconi/116075188451533&#039; content="Ciao ! Ti Suggerisco questa pagina, Diventa Fan di INTERISTI ROSICONI !
    ” type=”Interisti rosiconi” invite=”true”>

    “ DOVE SBAGLIO ?” PUOI AIUTARMI ?

  7. Ciao, ho un piccolo problema, ho creato una nuova pagina php dove ho incollato il tuo codice della form cambiando ovviamente i settaggi, l’ho caricata sul server e quando provo ad invitare gli amici, non viene caricato nulla…ho pensato che il problema fosse dato dal canvas che è abilitato a iFrame, ho provato a settarlo su FBML ma a quel punto la mia applicazione non viene più visualizzata..sbaglio qualcosa?
    Grazie

  8. Ciao Gennaro,
    ho ancora un dubbio:
    mi sai dire perchè l’invito arriva come “vai all’applicazione” anzichè “accetta”.
    Nel senso,
    le persone vengono re-indirizzate all’applicazione, tutto funziona ma… è come se non l’avessero mai utilizzata. Non vengono conteggiate nemmeno dal contatore. C’ è qualche passaggio da aggiungere nel codice, o da modificare?

    questa è la situazione:
    Utenti attivi mensilmente 2
    Persone a cui piace 5
    Utenti totali: 1.

  9. Ciao Gennaro,
    sto riscontrando dei problemi con questa applicazione.
    il codice che hai trascritto funziona, ma solo se accedo all’applicazione dalla pagina dell’applicazione stessa (es:http://www.facebook.com/apps/application.php?id=1431XXXXXXX) cliccando sul bottone “vai all’applicazione.”
    Quello che non funziona, e vorrei capire se è un problema di settaggio, è L’INVITO. Le persone lo ricevono, ma quando cliccano su “accetta”, viene fuori un messaggio di errore: “La pagina richiesta non è stata trovata”

    Penso sia un problema con l’ URL del Canvas” giusto?
    Ma non riesco a trovare la soluzione.

    devo mettere il link alla pagina dell’applicazione (come sopra) http://www.facebook.com/apps/application.php?id=1431XXXXXXX ? O quello del mio sito http://www.ilmiosito/applicazione/index.php??

    grazie per la collaborazione.

      1. Ho letto l’articolo. Quindi l’url del canvas, indicato nel tuo codice
        —————————————
        content=”Messaggio da inviare agli amici <?php echo htmlentities('”
        —————————————-
        dovrebbe essere http://www.ilmiosito/app/ no?
        Nel commento mi dici di mettere: http://apps.facebook.com/

        Scusami,
        forse sono “tonto” io… :P

        quello che non capisco è che quando si accetta, viene fuori l’errore di: pagina non trovata, e il link è:
        http://www.facebook.com/home.php?sfrm=1#!//ilmiosito.org/app/\"

        cosa sarebbe quel “\"”
        è corretto che ci sia?

          1. PERFETTO!!!!!
            con quest ultima correzione (Prova content=”Messaggio da inviare agli amici”) funziona!!
            Grazie per la disponibilità!!!!

            Aspetto altri articoliii!! ;)

  10. ciao gennaro volevo farti una domanda sto creando una applicazione per inviare tramite mms a gli utenti della mia applicazione gli aggiornamenti
    della loro bakeka e i messaggi ma non riesco a trovare documentazione e altro ,la mia idea è simile a questa applicazione http://www.newsfeedemail.com in prattica questo servizio prende la informazione e gli aggiornamenti del utente anche se non è conesso alla applicazione e invia un mail con tutto anche messaggi ,nella finestra popup dei permessi quando mi sono registrato mi chiedeva permesso per leggere la mia home i messaggi della mia inbox ecc ecc e permesso per accedere a questi anche se l’utente non è online ,sai qualcosa su questi permessi?come posso fare e poi come posso accedere a questi tramite la app.
    grazie =D

  11. Ciao,
    grazie per l’aiuto innanzi tutto.
    Ho provato a seguire molte altre guide sull’argomento, ma risultavano tutte dispersive e contraddittorie.
    Sono riuscito finalmente a trovare un codice semplice e pulito per sviluppare l’applicazione.

    Avrei solo una richiesta, se e quando ti è possibile:
    potresti dirmi se esiste un codice, inseribile in quello da te indicato, che permette di decidere un “numero minimo” di amici da invitare?

    grazie mille ancora
    G.

    1. Un numero minimo no. Facebook per fb:request-form, limita il numero di inviti a secondo dell’applicazione (in genere 16,25,ecc.).
      Puoi impostare invece il valore massimo per fb:multi-friend-selector, con l’attributo max (es. max=”20″)

      1. Grazie mille!

        Un’altra domanda,
        per creare una matrice con gli ID degli utenti, cosa mi consigli di usare? (sempre x l’ambiente fb)

  12. Ciao,
    scusa il disturbo,
    volevo chiederti una cosa se hai un attimo di tempo.
    Ho scritto un po’ di codice e sono
    riuscito a pubblicare delle informazioni sulla bacheca,
    ma solo dopo aver cliccato su pubblica.
    Io,invece, vorrei avere i permessi per pubblicare direttamente.

    Ecco il codice funzionante, ma con la richiesta di pubblicazione.

    var publish = {
    method: ‘stream.publish’,
    message: ‘Ecco il tuo voto: …’,
    attachment: {
    name: ‘Campionato.’,
    caption: ‘Ecco i voti della settimana!’,
    description: (‘La classifica parla chiaro ed è su Facebook. ‘),
    href: ‘http://www.XXXXXXXX.altervista.org/facebook/’,
    media: [{
    type: ‘image’,
    href: ‘http://www.XXXXXXXX.altervista.org/facebook/’,
    src: ‘http://www.XXXXXXXX.altervista.org/facebook/galleria/h.png’
    }]
    },

    action_links: [{
    text: ‘link app’,
    href: ‘http://www.XXXXXXXX.altervista.org/facebook/’
    }]
    };

    FB.ui(publish);

        1. ho parlato troppo presto..
          arriva sempre “response.error”

          FB.api(‘/me/feed’, ‘post’, { body: body, message: ‘pubblico…’ }, function(response) {
          if (!response || response.error) {..

          1. [RISOLTO]
            Era un problema di grant-permission
            Grant Permissions to make more examples work

            scusami se ho spammato un po’.. speriamo sia utile a qualcuno almeno, ciao!

  13. Ciao! Mi chiedevo. E’ possibile rendere visibile il box SOLO DOPO ESSER DIVENTATI FAN con la scritta ? Perchè con un LINK mi funziona, invece il box mi appare sempre e comunque. Grazieee

  14. Ciao,

    io sto creando un’applicazione iframe in PHP. Per inserire il form per invitare gli amici come dovrei fare?

    Nelle api di fb di php ci sono vari metodi che riguardano gli amici (o le liste di amici o gli inviti ad eventi) ma non so come usarli. Potresti aiutarmi?

    Poi,se volessi usare il linguaggio FMBL potrei usare il metodo ?fbmlforcemode=FMBL? Se si,come precisamente?

      1. Ci sto provando.

        il link a quella pagina è:

        < a href=”http://apps.facebook.com/MYAPP/invitaamici.php?fbmlforcemode=FMBL” rel=”nofollow” &gt:

        e il codice FBML di quella pagina è:

        <fb:request-form action="invitaamici.php"
        method="POST"
        invite="true"
        type="War of Kingas"
        content="Your text goes here. <?php echo htmlentities("” >

        E’ tutto giusto? non dà errori ma a video non esce niente.

  15. Ciao Gennaro, invece per stabilire e far vedere una classifica delle persone che hanno invitato più amici, stile contest, come si puo’ fare a livello di codice?
    Grazie mille, rispondimi pure via mail così che posso vedere subito appena rispondo dato che non c’è la notifica dei nuovi commenti…

    Grazie mille
    Manuel

          1. In effetti ti posso capire Gennaro, prima non ci avevo pensato.
            Per caso puoi dirmi dove trovare risorse sull’argomento (così mi arrangio a scrivere il codice io studiando)
            o magari, forse ancora meglio, le api di facebook che servono per fare queste cose…
            In pratica dove indirizzarmi per risolvere il problema,
            grazie ancora e scusami per l’intrusione
            Manuel

          2. Non esiste una guida, nè esiste un api per farlo.
            E’ semplice, ma devi conoscere le basi del php e di mysql.
            Devi:
            – Creare una tabella “classifica” con i campi fondamentali (es. uid, inviti,ecc)
            – Ogni volta che un amico invita, intercetti la Request e prendi la lista degli amici.
            – Effettui il conteggio della lista.
            – Aggiungi questo valore all’interno della tabella sommandolo al precedente se presente, inserendolo altrimenti.
            – la classifica la ottienei effettando una query tipo (“select * from classifica order by invite desc”) e li mostri a video.

            Di più non posso fare.

  16. ciao trovo molto interessante tutto cio ho letto i commenti ma non ho capito bene come devo integrare nella mia pagina il seguente codice?

      1. ciao ,o copiato e incollato nella pagina ma non esce nulla ,saro ‘ io a sbagliare :-(…. riprovo ma non va ,scusa se chiedo troppo ma no ho capito questi 2 passaggi action=”index.php” type=”Nome della nostra applicazione”

        1. figurati. Action è il nome del file php dove hai copiato e incollato. In Type, puoi inserire il nome della tua applicazione.
          Ricordati che questo codice funziona solo se sei in un applicazione di tipo FBML e non IFRAME

          1. grazie per il tuo consiglio ottima guida ma non sono riuscito sbaglio in qualcosa , fossi bello vedere una guida in un’altro tuo post che spiega come fare per tutti quelli che sono interessati.cmq complimenti per il tuo sito .

  17. Ciao provai già tempo ha dietro i metodi per inviare notifiche e funzionavano entrambi sia quello per utente che a gruppi di utenti, solo non riuscivo mai a completare tutto il processo, per ricavare gli id o persone in automatico senza bisogno di mettere io gli id come posso fare? anche perchè presumo che se io imposto degli id le notifiche arrivano sempre alle solite persone e non agli id amici degli amici degli amici.

    Esempio: io imposto gli id degli amici miei (quindi invierò le notifiche a tutti gli amici miei della lista) se arriva un amico mio a chi le invia? (sempre a loro? ma solo agli iscritti dell’applicazione?) non capisco.

    1. Il tuo è un problema di logica. Non devi impostarli via codice, ma prenderli secondo un tuo scopo. Una volta che sai come inviare una notifica , devi solo procurarti gli uid in questione.
      Per esempio, da un tuo database o facendo scegliere all’utente da una lista di amici, ecc..

      1. esatto è quello che avevo intuito infatti, avevo optato con “ogni volta che qualcuno visita l’applicazione e a un suo id, lo invia automaticamente a tutti gli altri id, magari tutte quelle persone che sono registrate all’applicazione (il tutto viene con uno script php che si allaccia al mysql (dove ovviamente sono registrati gli id degli altri) ma non sò minimamente da che parte farmi.

        1. ma questo sarebbe spam;) Invia le notifiche quando necessario, o in modo da trasmettere un messaggio virale. Per esemepio, dopo che l’utente fa una qualche azione, fai scegliere a quali amici vuole inviare l’informazione o invia a 10 amici a caso.

          1. si si ovvio, il mio era inteso come spam, ma non sotto quel gergo, dato che facebook a anche cambiato le regole ovvio. ma non saprei comunque come fare. grazie cmq.

  18. ciao,

    un mio amico mi ha creato questa applicazione:

    http://apps.facebook.com/radio-azzurra-player/

    funziona bene ma volevo sapere due cose:

    Come fare per inviare una notifica a tutti gli amici dell’utente (mario rossi) che ha appena istallato l’applicazione tipo: “mario rossi ha appena istallato radioazzurraplayer, se vuoi istallarla anche tu clicca qui”

    Perche non mi fa invitare tutti gli amici ma alcune volte 30 al giorno altre volte 24 o 16???

    Grazie Mille

      1. invece per quanto concerne le notifiche, Come di deve fare per inviare una notifica a tutti gli amici dell’utente (mario rossi) che ha appena istallato l’applicazione tipo: “mario rossi ha appena istallato radioazzurraplayer, se vuoi istallarla anche tu clicca qui”? grazie mille

      1. quindi uso $facebook->api_client->stream_publish ?
        come faccio invece a far selezionare degli amici su cui scrivere sulla bacheca ?

  19. Ciao,

    scusa se ti disturbo nuovamente ma non riesco a far funzionare la richiesta di installare l’applicazione selezionado gli amici dell’utente.

    Potresti allegare se possibile un esmpio completo, anche una pagina che apre solamente la finestra in cui selezionare gli utenti e invare la richieta di installazione.

    Grazie ancora per avermi risposto tempestivamente.

    RL

    1. L’esempio è quello nell’articolo .. se inserisci le 16 righe in un file index.php o index.html e lo richiami tutto funziona.
      Ovvimanete come ti ho detto nel precedente messaggio, l’applicazione deve essere di tipo fbml e non frame (nelle impostazioni dell’applicazione)

      1. Nel caso avessi un frame come dovrei fare?
        Posso richiamare attraverso un link alla pagina index.php contenente le 16 righe (inserita su un serve php con le relative librerie), in cui è presente anche la parte di caricamento api oppure non è una cosa fattibile.
        Il problema è che ho creato un applicazione java e per prendere il nome dell’utente uso le api JavaScript ma non riesco ad “Invitare gli amici ed inviare notifiche e messaggi” con queste api.
        Grazie.

        1. Dovresti utilizzare l’xfbml in questo caso. Ricordati di usare nello javascript in fondo pagina una chiamata a FB_RequireFeatures([“XFBML”],function(){ FB.Facebook.init(“YOUR_API_KEY_HERE”, “xd_receiver.htm”); });
          Di inserire il file xd_receiver.htm nella stessa cartella (lo trovi nella documentazione)

  20. Ciao,

    scusa il disturbo, volevo chiederti dove andava messo Il codice per mostrare la form e se la form si compilava automaticamente.

    Grazie
    RL

Lascia un commento

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