Aplicacion Facebook – Invitar Amigos
wenas wen ass… xd Nueno ps ahora les dejare un Videotutorial mas de Facebook..
En este veremos como invitar amigos a nuestra aplicacion… Esto claro con una interfaz de Facebook con ayuda de nuestras tags FBML, un poquito de FQL y el basico PHP. Con esto podremos crear nuestra propia aplicacion de facebook.
Una ves mas les dejo el videotutorial y el tutorial escrito… Espero sus comentarios y preguntas!..
Empesaramos creando un nuevo archivo que llamaremos “invitar.php”, en este tendremos el codigo para invitar anuestros amigos, asi que desde el index.php podrian poner un link a este archivo o una TAB (que vimos en el tutorial de diseño y programacion)..
Abrimos “invitar.php” con nuestro editor y empesamos escribiendo el siguiente codigo:
<?
require_once 'facebook.php';
$appapikey = '6057aeceb41f45db8b0a5f0928b42e48';
$appsecret = '422cb062e20d9cfb719cf9ca093d2870';
$facebook = new Facebook($appapikey, $appsecret);
$user = $facebook->require_login();
if(isset($_POST["ids"])){
echo "<br><br><center>Gracias por Invitar ".sizeof($_POST["ids"])." de tus Amigos a <b><a href=\"http://apps.facebook.com/muelalab/\">Muelalab.com</a></b><br><br>\n";
echo "<h2><a href=\"http://apps.facebook.com/muelalab/\">Volver A Frases Muelalab</a></h2></center>";
Explicacion: Empesamos con las mismas 5 lineas… luego hacemos una condicion, SI exite la variable “ids” que enviamos por POST, entonces escribiremos con “echo” un texto, en este caso el texto nos idica simplemente que ya Invitamos cierta cantidad de personas y nos da la opcion de volver a la apliacion.
La variable $_POST["ids"] es una variable que obtendremos despues de haber enviado las invitaciones, esta contendra los ids a donde se envio la invitacion.
Bueno ahora explicado eso, agregaremos las siguientes lineas:
}else{
$amigos1 = $facebook->api_client->fql_query('SELECT uid FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1='.$user.') AND is_app_user = 1');
$amigos = array();
if (is_array($amigos1) && count($amigos1)){
foreach($amigos1 as $amigo){
$amigos[] = $amigo['uid'];
}}
$amigos = implode(',',$amigos);
$invfbml = "Estas invitado!, <fb:name uid=\"$user\" firstnameonly=\"true\" /> quiere que conoscas las Frases de Muelalab! <fb:req-choice url=\"http://apps.facebook.com/muelalab/\" label=\"Frases Muelalab!\" />";
?>
Explicacion: Aqui continua el codigo, SI NO (else) existe la varible “ids” esto significa que aun no se a invitado a nadie, Entonces en una variable “$amigos1″ aremos un Query a la base de datos de Facebook, donde obtendremos los user ids “uid” de cada uno de los amigos del usuario logeado “$user”, que YA hayan accedido a la aplicacion “is_app_user = 1″…
Luego, creamos un array “$amigos”, y continuamos con un if, que se encarga de meter en el array “$amigos” cada uno de los ids, y por ultimo con la funcion “implode” separamos por comas cada uno de los ids. (Esto es necesario un pokito mas adelante veremos el por q).
Por ultimo se crea una variable “$invfbml” esta tendra el mensaje de “invitacion”, como ven use algunos tags, como el tag “name”, pero el unico tag nuevo aqui seria el tag req-choice, q este nos crea un boton en la invitacion, con la propiedad url indicamos la direccion a donde apunta el boton y con la propiedad label ponemos el titulo del boton.
Casi que acabamos, pero falta lo importante q es mostrar la interfaz de facebook pra seleccioanr a nuestros amigos que queramos invitar.. Esta: (click para ampliar)

Asi que solo agregamos el siguiente codigo:
<fb:request-form type="Frases Muelalab" action="invitar.php" content="<? echo htmlentities($invfbml,ENT_COMPAT,'UTF-8'); ?>" method="post">
<fb:multi-friend-selector actiontext="Invita a tus amigos a leer las frases de Muelalab!!" showborder="true" exclude_ids="<? echo $amigos; ?>" /> </fb:request-form>
<?php }?>
Explicacion: Usamos un tag de FBML pra mostrar los amigos… en realidad son dos tags, uno dentro de otro, asi se usan y aqui les dejo la explicacion:
| request-form: Necesario para crear Forms | |
| Propiedad | Descripcion |
|---|---|
| type | Titulo Aplicacion |
| action | archivo de destino |
| content | El contenido de la invitacion |
| method | Metodo de envio POST o GET |
Como ven en la propiedad content imprimiremos el mensaje de invitacion, la funcion htmlentities sirve para convertir lso caracteres raros a su expresion en html.
| multi-friend-selector: Muestra el selecionador de amigos | |
| Propiedad | Descripcion |
|---|---|
| actiontext | Texto que se mostrara como Titulo |
| showborder | Mostrar borde (True o False) |
| action | archivo de destino |
| exclude_ids | IDS que no mostraremos. (separados por comas) |
Como ven la parte inportante seria el “exclude_ids” donde imprimiremos los ids que habiamos obteneido en el array “$amigos”, de esta forma solo nos mostrara a los amigos que aun no hayn usado la aplicacion.
Una imagen para terminar de entender…

Y asi terminariamos, cabe decir que faebook es quein decide cuantos amigos podemos invitar por dia, y todo estodepende de cuantos usuario visitan tu aplicacion… Pero no cabe duda q esto nos ayduara a incrementar el numero de usario de neustra aplicacion..
La invitacion llega al usuario y se veria de esta forma:

Pues espero les haya sido de ayuda! y pues sigan visitandonos!! espero sus comentarios y sugerencias!
Suerte!!
Mi Nombre Es Daniel Muela Bienvenidos A Mi Blog! Contactame En Mi Email Para Cualquier Duda/Sugerencia: damuca_10@hotmail.com
luis
6 Dec, 2009
Gracias me sirvio mucho espero que sigas con mas tutoriales
gorka
9 Dec, 2009
Hola Muelalab!!!
Tus tutoriales me han servido de mucha ayuda!!! ya que necesitaba algun paso para crear la aplicacion, como la de los amigos para que tenga “VIRALIDAD dentro de la red social” que es el proyecto que estoy tratando.GRACIAS!
Mi pregunta!!!!!!
Sabes alguna opcion para que deje agregar a todos los amigos de facebook? En mi aplicacion me ha dejado hasta 12, pero en la tuya del video se logra ver y solo se podia invitar a 2 amigos…..En tu ejemplo selecciones 1 y te queda otro mas.
Cualquier respuesta, me sirve y si quieres pasate por la aplicacion.
Nos vemos en facebook!!
gorka
9 Dec, 2009
Por cierto, mi aplicacion es:
apps.facebook.com/uvedoble
celeste
28 Jan, 2010
Una consulta como podria hacer que en vez que salgan 4 columnas de amigos me salgan 2 ó 3.
Gracias!
Guillermo Gonzalez
1 Feb, 2010
Hola amigo, una pregunta porque solo deja seleccionar 12 amigos. Y no todos, podrias ayudarme con eso
Muchas Gracias
denka
10 Feb, 2010
no me funcinoa el ejemplo, tengo mi invitar.php igualito que aqui pero me sale este mensaje en el face: La URL http://www.misitio.com/miaplicacion/invitar.php
ha devuelto el código HTTP 200 y no datos.
a que sedebe este error???
Muela
10 Feb, 2010
Guillermo, el limite de usario esta dado por facebook, es automatico no se peude modificar, aumenta conforme el numero de usuario de la app y alguans variables mas..
Denka, checa que la pagina este funcionando correctamente (no este caida), si es un servicio gratuito puede fallar (por q ponen publicidad y falla la carga pro eso), si es asi buscate otro sitio gratuito con el q funcione
Si no es este tu problema, dimelo para ayduarte pro msn!..
suerte!
Romeel
11 Feb, 2010
Hola camarada… tus tutoriales me han sido de gran ayuda, sin embargo tengo un problemita con los Tabs, el código esta como lo muestras en los ejemplo además los archivos index.php y invitar.php se encuentran en mismo directorio de mi sitio, al ejecutar el index.php todo va bien pero al dar cliec en el tab queme debira abrir el invitar.php me regresa al la misma pag donde inicie es decir al index, sabes a que se debe esto… alguna sugerencia..
saludos!!
Muela
12 Feb, 2010
Hola Romme, bueno si copiaste el coidgo tal cual, como ves ambas tabs apuntan al index.php..
tab-item xhref=“index.php” title=“Frases de Exito” selected=“true”
tab-item xhref=“index.php“ title=“Otro Tab” selected=“true”
cambia el href de alguno por invitar.php
Ademas el canvas callbackURl debe apuntar a un directorio y no a un archivo.. algo asi:
http://muelalab.com/facebook/
suerte!
no funciona
13 Feb, 2010
no funciona, puede haber algun error de codificación? veo caracteres raros:
if (is_array($amigos1) && count($amigos1)){
pero si pongo && tampoco funciona…
por cierto me gustaria saber como añadir un boton que te agregue la aplicación a favoritos, como se hace?
Muela
13 Feb, 2010
como indicas ahi u nerror ahi es con ampersan “&&”.. ahora dices q aun asi no funciona (pero si funciona xD).. asi q indicame q error te muestra al cargar la pagina.. posiblemente sea otra cosa..
Sobre el boton de favoritos.. no exiten lso favoritos en Facebook.. pero para agregar a favoritos en el explorador de internet se peude ahcer con un link, y javascript.. te dejo un ejemplo: <a href=”javascript:window.external.AddFavorite(‘http://www.muelalab.com/blog’,’.::MuelaLab::. – Tutoriales’);”>
ahorradores
14 Feb, 2010
hola amigo
La página sale en blanco, mira te paso mi código:
—-
require_login();
if(isset($_POST["ids"])){
echo “Gracias por Invitar “.sizeof($_POST["ids"]).” de tus Amigos a La Comunidad de Ahorradores en Facebook\n”;
echo “Volver a la Comunidad“;
}
else{
$amigos1 = $facebook->api_client->fql_query(‘SELECT uid FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1=’.$user.’) AND is_app_user = 1′);
$amigos = array();
if (is_array($amigos1) && count($amigos1)){
foreach($amigos1 as $amigo){
$amigos[] = $amigo['uid'];
}}
?>
echo “amigos”
” method=”post”>
” />
————-
Puede ser por la versión de php? yo uso la 4 y la aplicación que tengo solo funciona con la 4 y con los ficheros de facebook de php4.
Respecto lo de añadir la aplicación a favoritos, si se puede, ya lo he visto en otras aplicaciones y es una buena forma de añadirlo al panel de la izquierda.
ahorradores
14 Feb, 2010
jajaja lo siento el código no ha salido bien…no lo pilla…
ahorradores
14 Feb, 2010
mira respecto añadir marcador dentro de facebooK, esta aplicación lo tiene:
http://apps.facebook.com/quotescreator/?_fb_fromhash=37ce60410f51497826ac93b222bdb4e7
Muela
14 Feb, 2010
FAVORITOS¿¿¿ no exite favoritos :S! existe ahcerse FAN.. q es diferente (si me peudes dar un ejemplo pa verlo y ya les explicare)
ahora tu dices q te sale en blanco.. probaste con mi codigo de ejemplo primero??
es mas prueba simplemente poneiendo texto ssin nada.. un simple texto… si se ve el texto, pues prueba colocando algo de php
PD: aun asi es recomendado usar php5 o superior (de hehco la libreria official solo exite para php5)
suerte!
Muela
14 Feb, 2010
oooo Bookmark.. si bueno no lo asimile Xd.. la traduccion n oes favoritos asi q no me provino la idea.. xD!
si se puede.. pero mejro hago un tutorial para agregar a bookmart y hacerse fan
lo psoteo estos dias igual y hoy!..
suerte!
ahorradores
14 Feb, 2010
hola Dani, con tu código tal cual tampoco funciona
lo único que cambié es el include al fichero facebook.php pero sigue saliendo en blanco…
lo del bookmark está muy bien ya lo he logrado, en el wiki pone como hacerlo pero me ha costado encontrarlo, si haces un tutorial la gente te lo agradecerá.
Por cierto, los comentarios no me salen tengo que repetirlos, no se si se quedan por ahi y luego salen, si salen repetidos, lo siento
Muela
14 Feb, 2010
okas, sip igual y aveces cuando tien links tengo q aprovarlos..
el Include no peude ser una pagina (www.ejemplo.com/carpeta/facebook.php)
solo se puede con ruta relativa asi: carpeta/facebook.php
Probaste poner texto comun sin tags de php?¿¿¿¿ si con el texto comun sale la pagina en blanco, entonces seguro esta mal configurada tu aplicacion o estas cargando u narhcivo distinto..
Si sale el texto, entonces es tu php, q como te digo tengo entendido q tiene q ser version 5..
agreggame al msn para poder ayudarte mejor: damuca_10@hotmail.com
suerte!
roberto
26 Feb, 2010
hola como pondria un w media player o un flash player en mi wall
geo
18 Mar, 2010
Hola!
Hay algo q no estoy entendiendo sobre el invitar.php…
al probarlo me da un error en linea 3065 de facebookapi_php5_restlib.php
que podra ser?
Gracias!
Muela
18 Mar, 2010
el error es pro las modificaciones que se le estan ahcioendo a facebok.
1.- Baja los archivos de la API denuevo y asegurate que se suban correctamente a tu servidor…
2.- El codigo funciona correctamente hasta el dia de hoy.. Has pruebas con el codigo q pongo aqui sin hacer modificaciones apra segurarte q lo estes haciendo bien..
suerte!
geo
18 Mar, 2010
Grax!
Si, se q estan haciendo modificaciones al cod de facebook…
Hace poco q baje los API… pero kiza lo modificaron dspues, asi q probare…
El resto me funciona… publicar en el muro y eso… excepto los actionLinks q tmpoco andan :S
Gracias de nuevo!
Cualquier cosa te consulto
erasmo
23 Mar, 2010
Me da error en la linea 13…
Parse error: syntax error, unexpected ‘;’ in /home/USER/public_html/game/invitar.php on line 13
Jaime
23 Mar, 2010
Hola, he hecho una aplicación donde utilizo el enviar invitaciones, tengo 3 usuarios FB para testear y en uno no me funciona (sale la aplicación en blanco), no entiendo que puede pasar, ¿a alguien le pasa lo mismo?
Muela
23 Mar, 2010
Erasmo.. el erroe es de sintaziz, en la linea 12 tenemos esto “&”… sale mal, eso se cambia por amperson & y listo.. si no ..bajate lso archivos de ejemplo que deje yo. estan al final del post “descargar archivos” es deben funcioanr correctamente..
Jaime. bueno no estoy seguro por q le salga en blanco, ya probaste escribieno solo texto?.. sin embargo este codigo no usa restricciones de permisos n ide logeo, asiq no deberia salir en blanco…
Helenita
24 Mar, 2010
Hola, antes que nada , gracias por tus tutoriales, haces ver todo muy fácil, pero tengo un problemita, ya descargué tu archivo de muestra y lo copie y en lugar del error de los && me sale este que está peor jaja. ojalá y puedas ayudarme. Saludos!
Fatal error: Uncaught exception ‘FacebookRestClientException’ with message ‘Parser error: unexpected ‘)’ at position 70.’ in /home/ixti/public_html/facebook/refranero/facebookapi_php5_restlib.php:3374 Stack trace: #0 /home/ixti/public_html/facebook/refranero/facebookapi_php5_restlib.php(1031): FacebookRestClient->call_method(‘facebook.fql.qu…’, Array) #1 /home/ixti/public_html/facebook/refranero/invitar.php(10): FacebookRestClient->fql_query(‘SELECT uid FROM…’) #2 {main} thrown in /home/ixti/public_html/facebook/refranero/facebookapi_php5_restlib.php on line 3374
Muela
25 Mar, 2010
ele erro no esta en mi arhcivo en este caso.. esta en facebookapi_php5_restlib.php
que e suno de lso archivos que debes subira tu servidor, este archivo esta “pesado” 150kb.. aveces la subida al servidor falla o se detiene.. y no nos damos cuenta..
te recomiendo bajes lso archivos actualizados, y lso subas denuevo, segurate q se suba correctamente..
nos avisas porfavor q paso!
suerte!
geo
30 Mar, 2010
Hola Daniel!
Te agregue a msn, mande un mensaje donde decia q soy geo… cualq cosa te mando la invitacion de nuevo…
Sabes que todavia no logre q se publiquen los actionlinks :S no se xq… De paso te muestro mi app…
Si tenes otra cuenta de msn, avisame, xq yo agregue una q posteaste en los comentarios de x aki…
Saludos y gracias de nuevo x los tuts y la ayuda
Caro
29 Apr, 2010
Hola!!!, primero que nada muchisimas gracias por todos tus tutoriales, me han servido muy bien, pero tengo una duda, hice una aplicacion similar a las frases que hiciste, pero necesito publicar la frase que obtengo en mi muro, el codigo de publicar mensaje me funciona perfecto, pero no se como agregarle la frase que me sale…Muchas gracias otra vez…:)
lolitashu
27 May, 2010
puta ke te kiero cabro
valeeeeee
Daniel Muela
27 May, 2010
XD!! gracias..
ahi caulqueri cosa pregunta y con gusto te ayudo..
suerte!…
lolitashu
28 May, 2010
oie loki kachai ke me acabo de dar cuenta de ke el codigo tiene un pequeño bug (eaea), la cosa es cuando das a omitir (saltar) puede pasar una de las siguientes cosas:
1.- te recarga la pagina una i otra vez hasta ke invitas a alguien
ó
2.- te tira una pagina en blako
por ke okurre esto?
intenté ver la configuracion para redicccionar a una pagina cuando el usuario le de a omitir, pero no se donde esta ese parametro
ideas?
Carlos Saludos
5 Jun, 2010
Muchas gracias por el tutorial, muy bien explicado de una manera muy sencilla. Hice todo lo que allí explica y puedo ver todos mis amigos para hacer la invitación, y he logrado hacer varias invitaciones. El problema es que les pregunto a los que están conectados si les llegó y me dicen que no, a pesar que se indica que sí se envió invitaciones. TEngo que darles el link aparte. ¿Por qué será que no llegan las invitaciones?
Daniel Muela
8 Jun, 2010
hola carlos…
bueno estueb probando y eta todo perfecto las invitaciones llegan correctamente
verifica las siguietnes cosas:
1.- El texto tiene un limite de caracteres me parece q son 160
2.- Ua texto sencillo mada de signos extraños y sin links Directos (no son validos los tag
suerte!
mya
14 Jun, 2010
Thanks for this article. There are definitely tips in here that I will use.
sebas
22 Jul, 2010
muchas gracias x el tutorial;
es justo lo q estoy buscando;
soy un novato total, y estoy ingresando de a poco en este tema; tengo mi aplicacion subida, aunque solo es un simple juego en flash; quiero agregarle el tab d invitar a tus amigos, pero invitar.php me sale en blanco;
ya probe poniendo solo texto, y sale ok;
alguna pista, por favor?
desde ya muchas gracias,
saludos,
sebas.
Felipe Garan
22 Jul, 2010
Abajo te dejo demo de como yo lo hago
——————-
—————–
Cualquier cosa me cuentas que otra ayuda necesitas.
Felipe Garan
22 Jul, 2010
Felipe Garan
22 Jul, 2010
Felipe Garan
22 Jul, 2010
Definitivamente no pude incluirte el codigo… necesito guia de como incluir el codigo en estos comentarios…