Nel 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
1 2 3 4 5 6 7 8 9 10 11 |
<?php require_once 'appinclude.php'; echo "<h2>Ecco i tuoi amici:</h2>"; $friends = $facebook->api_client->friends_get(); foreach ($friends as $friend) { echo "<div style='width:80px; height:80px; float:left;'>”; echo '<fb:profile-pic uid="' . $friend. '" linked="true" size="square" /><br/>’; echo "<fb:name uid='".$friend."' />"; echo "</div>"; } ?> |
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
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
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.
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.
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
Per inviare messaggi sull bacheca dell’utente devi utlizzare il comando showFeedDialog
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
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.
Perché sconsigli usare POST e GET? Più che altro: E allora come le passo?
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
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?
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?
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.
Grazie, adesso funziona, pensavo bisognasse fare qualcosa nell’account dell’applicazione ma non sapevo dove.
Saluti
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?
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!
@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?
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.
Ma il codice FBML dove va inserito? Mi da errore, dice che è stato rilevato un “api_client->feed_publishUserAction();
Grazie
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
tramite feed_publishUserAction.
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?
tramite profile_setFBML.
@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”;}
inviamelo tramite il contact form o copia ed incolla il tuo codice in questo indirizzo http://noteslog.com/personal/projects/postable/ e riscrivi il post, purtroppo alcuni caratteri non sono stati intepretati nei commenti
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
devi effettuare un controllo sull’array ;).
ovvero if (is_array($friends)) { … } else { /* vuoto*/ }
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
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.
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.
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.
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 :)
Per aggiungere il pulsante : <fb:add-section-button section=”profile” /> e con la funzione profile_setFBML imposti il codice da mostrare
@pasquale: Sono preso dal lavoro ultimamente, appena posso ne farò altri, non temere.
vogliamo altri tutorial ed esempiiiiii
@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.
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.
ciao Gennaro
grazie mille, ce l’ho fatta e senza di te non sarei mai riuscito.
Ora non mi resta che scipollare…
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
@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.
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…
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!
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
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
Grazie! Mi fa piacere che apprezzi. Quando posso, aggiungerò altri tutorial o codice.