Gli amici – Come creare un applicazione per FaceBook (parte 2) 63





Gestione amici in facebook - Gennaro Varriale.itNel primo articolo Come creare un applicazione per FaceBook abbiamo visto come creare una semplice applicazione, ora vediamo di scoprire le funzioni che  mette a disposizione facebook per interagire con la propria piattaforma.
Iniziamo con il metodo friends_get che ci permette di avere la lista dei nostri amici.
Sostituire il file index.php del primo articolo con il seguente:
index.php

Nel seguente codice dopo aver caricato la libreria facebook con i dati dell’applicazione (appinclude.php) (vedi articolo precedente) visualizziamo la lista di tutti i nostri amici tramite  friends_get.
Tale metodo restituisce un array con gli uid (identificativi) di tutti gli amici dell’utente corrente. Quindi tramite il metodo foreach, per ogni uid “amico”visualizziamo la sua foto ed il suo nome.
Per farlo utilizziamo il  tag fbml  fb:profile-pic che visualizza la foto dell’utente ed il tag fbml fb:name che ci restituisce il nome dell’utente.  Entrambi accettano come attributo uid , l’identificativo dell’utente (nel nostro caso memorizzato nella variabile $friend).

Per completezza l’uid dell’utente è lo stesso numero che troviamo nella pagina del profilo.
Per esempio l’uid del mio profilo è  640382693 , come nell’indirizzo :  http://www.facebook.com/profile.php?id=640382693

Seguimi su twitter : @ironico

63 thoughts on “Gli amici – Come creare un applicazione per FaceBook (parte 2)

  1. Reply Hotni set 3,2009 13:30

    personalmente stò un pò sbattendo la testa per creare una semplice applicazione che mi permetta di inviare notifiche, e di pubblicare sulle bacheche altrui, comunque per a chi possa servire posto il file config.php

  2. Reply Marco Zambon ago 4,2009 16:29

    Ciao, anzitutto complimenti per il sito e per gli articoli. un argomento non ancora sfiorato sono i gruppi di facebook. come fare ad esempio a collegare la bacheca del proprio gruppo facebook con il proprio sito? Nella rete non sono riuscito a recuperare proprio nulla sull’argomento.

    • Reply Gennaro Varriale ago 8,2009 18:53

      ciao Marco,
      grazie per i complimenti.
      Presto inserirò altri articoli su FB.
      Comunque, per rispondere alla tua domanda, al momento non è possibile integrare la bacheca del gruppo facebook sul proprio sito.

  3. Reply tom giu 15,2009 16:41

    Salve, proseguo nei vari test sulla piattaforma FB. Qualche dritta, almeno per iniziare, in merito alla pubblicazione, tramite l’applicazione, di contenuti sulla bacheca dell’utente loggato? Meglio ancora pubblicazione sulle bacheche degli amici dell’uente in questione? Attendo speranzoso qualche suggerimento anche solo qualche metodo da richiamare (ex. Links.post..). Grazie anticipate

  4. Reply Angelo mag 26,2009 15:41

    Salve, ho un problema con il tag fb:request-form, ho seguito tutte le istruzioni ho visto una marea di esempi, ma non funziona. Mi compare la schermata dove vedo tutti gli amici da selezionare, ma è come se fosse tutto bloccato perchè anche se seleziono qualche amico e mando l’invito non succede nulla. Gli altri tasti non rispondono all’evento click, ecc… che cosa può essere?

    Utilizzo ASP.NET e la libreria Facebook Developer Toolkit.

    il codice è il seguente:

    string content = “Prova Contenuto… ” + “”;

    content = Server.HtmlEncode(content);

    string inviteForm = “”;
    inviteForm += “”;

    inviteForm += “”;

    prova1.Text = inviteForm + “”;

    Vi ringrazio in anticipo.

    Angelo

    • Reply Gennaro Varriale mag 30,2009 10:18

      non utilizzo ASP, ma il comando fb:request-form non è complesso. Sei sicuro di aver messo l’attributo action con il valore corretto? Ti ricordo che il percorso deve essere assoluto e riferire al canvas.

  5. Reply Diego mag 15,2009 12:41

    Perché sconsigli usare POST e GET? Più che altro: E allora come le passo?

    • Reply Gennaro Varriale mag 15,2009 10:21

      Attenzione, non ti sconsiglio il loro utilizzo, ho detto di non inserirli direttamente. Prima si carica il valore in una variabile, quindi si controlla la validità e successivamente si passa il valore alla funzione.
      Puoi benissimo utilizzarle direttamente, ti ho solo indicato il metodo corretto per farlo

  6. Reply Diego mag 14,2009 22:15

    Ciao Gennaro.
    Ho realizzato un’applicazione e sto provando a mandare una notifica a un mio amico che non l’ha aggiunta. Ho letto che user_to_user lo permette. Il codice che uso è:
    if($facebook->api_client->notifications_send((int)$_POST[destinatario], $_POST[testo_notifica])){messaggio di successo;}else{insuccesso;}
    Indovina un po’? Non funziona.
    Come mai?

  7. Reply noixe apr 19,2009 12:59

    Un’ultima cosa: nel momento in cui ottengo l’ID, a che cosa mi serve Feed.registerTemplateBundle?

    Solo ad ottenere quell’ID via codice? Ma leggendo la guida e vedendo alcuni esempi (http://wiki.developers.facebook.com/index.php/Feed.registerTemplateBundle)sembra che i parametri accettati siano tanti… forse si possono registrare piu ID per applicazione e identificarli univocamente passando come parametro il tipo di template associato al feed di cui vogliamo estrarre l’ID?

    • Reply Gennaro Varriale apr 19,2009 10:22

      esatto, Feed.registerTemplateBundle serve a creare i template via codice. Non c’è un limite e puoi utilizzare uno piuttosto che un altro, in base al contesto dell’applicazione.

  8. Reply noixe apr 19,2009 12:53

    Grazie, adesso funziona, pensavo bisognasse fare qualcosa nell’account dell’applicazione ma non sapevo dove.

    Saluti

  9. Reply noixe apr 18,2009 16:11

    Mi sono accorto ora che il messaggio precedente non si visualizza correttamente a causa delle parentesi angolari.

    Cmq la funzione api_client->feed_publishUserAction(); che parametri prende?

    • Reply Gennaro Varriale apr 19,2009 10:23

      inserire l’email il filtro antispam fallirebbe.
      Ultimo aiuto ;) Devi prima creare il feed da pannello di controllo, ti restituira un ID, che sarà il primo parametro della funzione. Il secondo è l’array contenente i valori da passare al template creato.
      Penso che ti basti per intuirne il funzionamento e nelle documentazione estrapolarti il codice corretto. Buon lavoro!

  10. Reply Noixe apr 18,2009 15:12

    @Gennario Varriale:

    La funzione che mi hai indicato fa anche uso di Feed.registerTemplateBundle ma non so come usarla, non ho trovato spiegazioni chiare, puoi farmi tu un esempio?

  11. Reply Noixe apr 18,2009 14:49

    Ho provato
    print “Messaggio di prova “;

    e non da errore ma non appare niente nel profilo, forse devo aspettare?

    Nota:
    La necessità di dover scrivere sempre nome ed email e la cancellazione del messaggio nel caso in cui si dimentica di farlo, rende seccante la discussione.

  12. Reply Noixe apr 18,2009 14:42

    Ma il codice FBML dove va inserito? Mi da errore, dice che è stato rilevato un “api_client->feed_publishUserAction();
    Grazie

  13. Reply Noixe apr 18,2009 14:11

    Salve,

    ho realizzato un’applicazione facebook (Master Mind) che però non fa uso di FBML.

    In che modo posso farsì che quando l’utente usi la mia applicazione, nella sua bacheca appaia il messaggio [Nome Utente] ha giocato ah Master Mind?

    Eventualmente via FBML che API dovrei usare?

    Se volete vedere l’applicazione la trovate qui:

    http://axeryon.altervista.org/php5/master/index.php

    Grazie

  14. Reply manfredi apr 17,2009 23:46

    Gennaro
    se io volessi pubblicare un link della mia pagina web su facebook, ovvero farla pubblicare nel profilo dei miei amici vorrei che comparisse di default una certa parte di testo a mia scelta e l’immagine che voglio io. come faccio?

  15. Reply alex apr 8,2009 08:13

    @Gennaro

    Grazie per la risposta.
    Ho provato il seguente codice, come mi hai suggerito ma l’errore rimane.
    ERRORE:
    Errors while loading page from application
    Runtime errors:fb:profile-pic: Invalid uid for fb:profile_pic (0)

    CODICE:

    $friends = $facebook->api_client->friends_get();
    if (is_array($friends)){
    foreach ($friends as $friend) {
    echo ” !”;
    echo ” !”;
    echo “”;
    }
    } else {echo “error”;}

  16. Reply alex apr 7,2009 11:47

    Ciao. Ho creato una semplice applicazione per ricevere la lista di amici di un utente.
    L’applicazione funziona:visualizza sia le foto che il nome di ogni amico.
    Il problema è che, se l’utente non ha amici, viene rilevato un errore in quanto non viene passato al metodo che visualizza le foto l’uid dell’amico.
    Il codice è questo:

    ….
    $friends = $facebook->api_client->friends_get();

    foreach ($friends as $friend) {
    echo ” !”;
    echo ” !”;

    }

    echo “”;

    Ho provato aggiungendo anche
    if($friends=””)
    echo”non hai amici”;
    else {

    foreach ($friends as $friend) {
    echo ” !”;
    echo ” !”;

    }
    }

    echo “”;

    ma ricevo sempre questo errore:

    Errors while loading page from application
    Runtime errors:
    fb:profile-pic: Invalid uid for fb:profile_pic (0)

    Qualcuno di voi mi potrebbe aiutare?grazie mille

  17. Reply gaber apr 2,2009 19:29

    esempio: voglio pubblicare un video sulla bacheca,ma ha dei contenuti forti,non voglio che venga visualizzato dai miei nipoti o da parenti stretti,è possibile applicare delle restrizioni?
    Se non si può fare sulla bacheca spiegami come farlo con un’ applicazione,ad es a che serve YOU TUBE BOX?ho visto che nelle sue modifiche,nella sezione profilo si può creare una lista personalizzata di amici ma non mi è chiaro a quale scopo.
    Grazie

    • Reply Gennaro Varriale apr 3,2009 10:27

      YouTube Box permette di inserire un video nel tuo profilo (con molte opzioni). Non ho mai installato quest’applicazione e quindi non conosco lo scopo della lista. Prova a caricare uno di esempio, crea una lista e vedi se anche gli altri vedono il video.
      In genere,non puoi applicare nessun tipo di restrizione su porzioni del tuo profilo.
      Creare un’applicazione a tal scopo significa crearne una che :
      – accetta una lista di amici.
      – ti fa caricare i video
      – in una pagina dell’applicazione vengono mostrati i contenuti solo se si appartiene a quella lista, altrimenti mostra un contenuto alternativo.

  18. Reply gaber apr 1,2009 20:28

    Gennaro forse tu mi puoi aiutare,non è molto inerente ma sto cercando di scoprire,se tramite un’ applicazione è possibile creare una lista personalizzata di amici,ai quali inviare ad esempio il link di un video e che di conseguenza compaia solo a loro sulla bacheca e non agli altri.
    Ho visto le liste di amici ma è possibile solo inviare messaggi privati e quindi non poter interagire e commentare tra tutti.

    • Reply Gennaro Varriale apr 3,2009 10:28

      Non mi è chiaro, cosa intendi per un link video che si vede solo su alcune “bachece”, dato che esse sono pubbliche.
      Comunque puoi realizzare un applicazione che gestisce una “nuova bacheca” privata visibile solo a persone appartenente ad un gruppo di amici.

  19. Reply Nicola mar 27,2009 23:43

    Scusate una domanda , temo d’aver perso un passaggio ma non risco a capire quale.
    Come posso inserire la funzione “Aggiungi al profilo” una volta che han completato un eventuale quiz o test ? Sia nella versione precompilata di fb sia in un eventuale applicazione creata da 0 ?

    grazie in anticipo :)

  20. Reply Gennaro Varriale mar 6,2009 21:39

    @pasquale: Sono preso dal lavoro ultimamente, appena posso ne farò altri, non temere.

  21. Reply pasquale mar 6,2009 20:30

    vogliamo altri tutorial ed esempiiiiii

  22. Reply Gennaro Varriale feb 7,2009 14:50

    @emanuele: di precotto in programmazione c’è poco, ma si usa il tag fb:request-form in questo caso.
    @Luca Gorini: mi fa piacere ;)
    @simmons: devi sostituire le strighe es. ‘profile_main’ e ‘profile’ con il codice fbml. Non puoi inserire codice php in profilo, solo fbml/html.

  23. Reply simmons feb 7,2009 13:49

    grazie per l’aiuto.
    sono quasi arrivato alla meta. ora l’applicazione funziona solo che quando l’aggiungo al profilo….non mostra nulla a parte: profile_main

    ho dovuto usare:$facebook->api_client->profile_setFBML(session_key, uid, ‘profile’, ‘profile_action’, ‘mobile_profile’, ‘profile_main’);

    come faccio a dire all’applicazione qual’è il codice da visualizzare nella pagina del profilo??
    cioè la mia index è composta di php e html…

    grazie mille.

  24. Reply Luca Gorini feb 7,2009 11:24

    ciao Gennaro
    grazie mille, ce l’ho fatta e senza di te non sarei mai riuscito.
    Ora non mi resta che scipollare…

  25. Reply emanuele feb 5,2009 21:08

    ma per invitare amici ad usare la tua applicazione esiste un tool “pre cotto” interno alle librerie di facebook o te lo devi costruire tu? grazie

  26. Reply Gennaro Varriale feb 2,2009 14:33

    @tutti: Cerco con i miei articoli di avvicinare alla programmazione o estendere le proprie conoscenze. Non chiedetemi aiuti non inerenti ai contenuti degli articoli. Se avete richieste professionali, contattatemi privatamente.

  27. Reply Eva feb 2,2009 14:15

    Ciao, grazie mille per il tuo tutorial. Purtroppo però non so come andare avanti, puoi darmi una mano? l’applicazione che vorrei riportare su facebook è questa http://www.mammedomani.it/ticker e ho visto che su fb già ci sono applicazioni uguali, quindi è possibile farlo…

  28. Reply Giochi gratis online gen 29,2009 22:48

    Ciao! Ho creto un applicazione di giochi su facebook http://apps.facebook.com/giochiandgiochi/ e mi piacerebbe sapere come posso inserire nella porte bassa un il modulo che permette la segnalazione dell’applizazione agli amici.
    Mi potresti dare un mano?

    Sono sicuro che tornerà utile anche a tutti i tuoi utenti!

  29. Reply Carlo Colombari gen 25,2009 15:26

    Gennaro,
    vorrei postare un tutorial per inziare a smanettare sulle applicazioni Facebook per renderle dinamiche. Per renderle dinamiche si sa occorre scrivere e leggere le tabelle. Io posto ora il codice per scrivere sulla tabella mysql.

    Il programma registra su una tabella l’ora dell’accesso e l’id dell’utente che visualizza una pagina della applicazione. Il campo count della tabella contatore, invece, è un autoincrement e lo uso come contatore degli accessi.

    Questo è il codice della pagina index.php:

    require_login();

    // Apertura database
    $link = mysql_connect($db_host,$db_username,$db_password); if (!$link) {die(‘Could not connect: ‘ . mysql_error());} mysql_select_db($databse_name);

    // Scrittura sul database
    mysql_query(“INSERT INTO contatore (data,username) values (‘$data’,’$user’)”);

    // Lettura database
    $sql = ‘SELECT * FROM contatore ORDER BY count DESC LIMIT 0 , 1’;
    $result = mysql_query($sql);
    $row = mysql_fetch_assoc($result);
    echo “$row[count] visite”;

    // Scrivi da qui in avanti la tua applicazione

    // Chiusura database
    mysql_close($link);
    ?>

    Ora posto il contenuto di config.php chiamato all’inizio della pagina index:

    Ora posto il codice per creare la tabella con mysql

    CREATE TABLE contatore (
    count int(11) NOT NULL auto_increment,
    data varchar(16) NOT NULL default ”,
    username varchar(15) NOT NULL default ”,
    PRIMARY KEY (count)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=275 ;

    Tutto qui è il gioco è fatto (ricordatevi di postare anche il client come spiegato dai precedenti post di Gennaro).

    Postate anche voi i vostri codici per fare crescere la comunità.

    Chiedo a tutti e soprattutto a Gennaro se mi può aiutare nel fare l’upload di immagini da applicazioni Facebook. Tutti i codici che trovo in rete non mi funzionano. Puoi postare il codice per fare l’upload da una form PHP con il campo file?

    Ciao
    Carlo

  30. Reply Carlo Colombari gen 24,2009 17:32

    Ottimo lavoro Gennaro,
    grazie mille per i tuoi tutorial.

    Sei l’unico sviluppatore italiano di applicazioni Facebook e mi auguro che le lezioni aumentino.

    Ciao e continua così
    “Ti stimo fratello”

    Ciao

Leave a Reply

  

  

  

Per essere informato sui miei contenuti - Email: