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 :

 <fb:fbml>
   <fb:request-form
	 action="index.php"
	 method="POST"
	 invite="true"
	 type="Nome della nostra applicazione"
	 content="Messaggio da inviare agli amici <php echo htmlentities("<fb:req-choice url=\"URL DEL CANVAS\"
	 label=\"Autorizza la mia applicazione\"") ?>"
    >
          <fb:multi-friend-selector
              showborder="false"
             actiontext="Invia i tuoi amici !"
          />
</fb:request-form> 

</fb:fbml>

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->api_client->notifications_send($uid, 'Ciao, questo è un messggio', 'user_to_user');

$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

  $lista_Utenti= " $uid1, $uid2, $uid3  ";  // elenco di UID separato da virgola
  $facebook->api_client->notifications_send($lista_Utenti, 'messaggio per più utenti', 'app_to_user');

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

26 commenti

  • emilio scrive:

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

    • copiando e incollando..

      • emilio scrive:

        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”

        • 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

          • emilio scrive:

            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 .

  • Organic scrive:

    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.

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

      • Organic scrive:

        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.

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

          • Organic scrive:

            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.

  • pippo scrive:

    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

  • Aldo scrive:

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

  • Roberto scrive:

    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

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

      • Roberto scrive:

        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.

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

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

  • Roberto scrive:

    Ciao,

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

    Grazie
    RL

Rispondi

Attenzione : Per inserire codice html/php o caratteri speciali utilizza Postable. Postable converte i caratteri speciali del tuo commento.
XHTML: Puoi usare questi tag: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>