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





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

Seguimi su twitter : @ironico

77 thoughts on “Creare un applicazione per facebook : Invitare gli amici ed inviare notifiche e messaggi

  1. Reply matteo set 5,2014 12:11

    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. Reply woolrich ago 14,2012 09:07

    Ovvimanete come ti ho detto nel precedente messaggio

  3. Reply fabrizio apr 5,2012 00:06

    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

  4. Reply Marco feb 10,2012 11:59

    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

    • Reply Gennaro Varriale feb 22,2012 12:13

      Se chiedi i giusti permessi all’utente, puoi tramite le corrette api farlo.
      Attento , però che questo comportamento è visto da FB come spam e potrebbe penalizzare la tua app.

  5. Reply Salvatore feb 2,2012 19:07

    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?

  6. Reply stanislao set 24,2011 09:58

    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

    • Reply Gennaro Varriale set 25,2011 08:47

      Se i tuoi utenti hanno acconsentito a ricevere email (permesso email dell’apps) puoi contattarli in questo modo.
      Se hai chiesto i permessi offline, inoltre puoi inviare messaggi sulla loro bacheca.

  7. Reply Alex feb 22,2011 17:17

    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 ?

    • Reply Gennaro Varriale feb 23,2011 10:57

      Il limite lo decide facebook in base a degli algoritmi. Il numero aumenta con il ‘successo’ dell’applicazione. Vedrai che tra poco il limite aumenterà.

  8. Reply Genny feb 11,2011 12:41

    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

    • Reply Gennaro Varriale feb 11,2011 19:09

      Il codice di questo articolo è per un’apps di tipo fbml.
      Se non ti visualizza nulla c’è qualche errore, probabilmente sugli apici.
      Segui il suggerimento dato a Giuseppe pochi commenti sotto ;)

  9. Reply Giuseppe feb 6,2011 17:48

    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.

    • Reply Gennaro Varriale feb 7,2011 12:33

      Le statistiche vengono aggiornate ogni 24 ore.
      La richiesta di accettazione avviene, se si chiedono permessi particolari o si accede ai dati dell’utente.

  10. Reply Giuseppe feb 4,2011 15:58

    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.

  11. Reply Fabricio Peralta feb 3,2011 14:29

    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

  12. Reply Giuseppe feb 1,2011 17:04

    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.

    • Reply Gennaro Varriale feb 1,2011 23:15

      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″)

      • Reply Giuseppe feb 2,2011 12:13

        Grazie mille!

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

  13. Reply Tanisha Mills dic 24,2010 01:21

    in che ambiente sei? in un sito internet, in un’apps facebook, in una pagina FB?

    • Reply Gennaro Varriale dic 24,2010 09:56

      apps facebook. Ma va bene anche con una pagina FB (dato che è solo FBML).
      Mentre per un sito internet dovresti inglobare il codice in un tag fb:serverFbml (ovviamente caricando libreria all.js)

  14. Reply dz nov 5,2010 13:14

    tu sei un santo Gennà.

  15. Reply walter ott 15,2010 12:27

    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);

    • Reply Gennaro Varriale ott 15,2010 15:14

      FB.ui (user interface) usa un popup per chiedere conferama all’utente.
      Devi usare invece FB.api con “/me/feed”

      • Reply walter ott 15,2010 17:12

        Grazie 1000!
        Adesso và..

        • Reply walter ott 15,2010 17:28

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

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

          • Reply walter ott 15,2010 17:38

            [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!

  16. Reply Francesco mag 12,2010 21:00

    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

  17. Reply Stefano mar 22,2010 15:05

    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?

    • Reply Gennaro Varriale mar 22,2010 17:39

      ti conviene utilizare il force mode, creando una pagina fbml e chiamadola, con pagina.php?fb_force_mode=fbml

      • Reply Stefano mar 23,2010 11:01

        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.

  18. Reply Manuel mar 22,2010 12:28

    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

    • Reply Gennaro Varriale mar 22,2010 17:40

      devi creare una tabella dove aggiungi/aggiorni record ogni volta che gli amici vengono invitati, infine mostri la classifica analizzando la tabella.

      • Reply Manuel mar 23,2010 09:40

        Il mio problema Gennaro è che non so come realizzarlo a livello di codice facebook – php…
        Se mi puoi aiutare ti ringrazio moltissimo
        Manuel

        • Reply Gennaro Varriale mar 23,2010 16:31

          scusami, ma non ho il tempo di creare codice anche parziale. Faccio il possibile per rispondere ai commenti dando qualche suggerimento

          • Reply Manuel mar 24,2010 09:35

            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

          • Reply Gennaro Varriale mar 24,2010 10:17

            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.

  19. Reply Gaia mar 19,2010 00:58

    Ciao,
    ok, il 1° Marzo è passato, come faccio a inviare qualche notifica??

  20. Reply emilio mar 5,2010 23:39

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

    • Reply Gennaro Varriale mar 6,2010 09:43

      copiando e incollando..

      • Reply emilio mar 6,2010 15:25

        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”

        • Reply Gennaro Varriale mar 6,2010 17:49

          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

          • Reply emilio mar 6,2010 19:31

            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 .

  21. Reply Organic feb 21,2010 00:56

    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.

    • Reply Gennaro Varriale feb 21,2010 11:21

      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..

      • Reply Organic feb 21,2010 11:50

        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.

        • Reply Gennaro Varriale feb 22,2010 10:26

          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.

          • Reply Organic feb 22,2010 18:21

            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.

  22. Reply pippo feb 5,2010 14:59

    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

  23. Reply Aldo gen 28,2010 04:15

    Ciao, volevo sapere se sai come scrivere sulla bacheca di un amico dell’utente

  24. Reply Roberto gen 19,2010 10:17

    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

    • Reply Gennaro Varriale gen 19,2010 23:36

      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)

      • Reply Roberto gen 20,2010 09:31

        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.

        • Reply Gennaro Varriale gen 20,2010 10:02

          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)

  25. Reply Gennaro Varriale gen 18,2010 19:59

    Va messo in una pagina php, caricata in un’applicazione di tipo fbml.

  26. Reply Roberto gen 18,2010 16:11

    Ciao,

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

    Grazie
    RL

Leave a Reply to Fabricio Peralta Cancel Reply

  

  

  

Per essere informato sui miei contenuti - Email: