Tutorial: Cómo agregar un tab viral en Facebook para subir imágenes

Cicklow Seguir
Seguidores
14

Admin
Épsilon
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Suscripción a IA
Desde
30 May 2011
Mensajes
966
En este nuevo tutorial aprenderán a agregar un tab viral a su fanpage, lo que hace este script es ver si el user es fan, luego si es fan redireccionamos a pedirle permisos (para subir foto y el email). Luego que el user da permsios se crea una foto con su nombre y un porcentaje aleatorio (ustedes le pondran el nombre que quieran, ejemplo que tan amoroso eres...)
PHP:
<?php
	@set_time_limit(0);

	$_PAGEID	= '46757812***'; //ID de su pagina
	$_APPID		= '13011****'; //ID de su aplicacion
	$_APPSE		= '10c******'; //Codigo secreto de la aplicacion
	$_PERMISOS	= 'email,read_stream,publish_stream,photo_upload'; //permisos a pedir
	$_MSERVER	= '//facebook.web.com/test/'; //url de donde se encuentra la aplicacion

	//Agregamos el SDK PHP de facebook
	require '../php3/facebook.php';

	//Cargamos la clase facebook y le avisamos que vamos a subir fotos.
	$facebook = new Facebook(array(
	  'appId' => $_APPID,
	  'secret' => $_APPSE,
	  'cookie' => true,
	  'fileUpload' => true,
	));
	$facebook->setFileUploadSupport(true);

	//Obtenemos Los datos del usuario
	$_R = _SR($_REQUEST['signed_request'],$_APPSE);

	//Verificamos si es fan
	if($_R['page']['liked']){
		//Es fan pero no obtenemos el codigo de autorizacion, entonces pedimos permisos.
		if($_R['oauth_token']==""){
			echo "<script>
  			var oauth_url = 'https://www.facebook.com/dialog/oauth/';
			oauth_url += '?client_id=".$_APPID."';
			oauth_url += '&redirect_uri=' + encodeURIComponent('https://www.facebook.com/pages/null/".$_PAGEID."/?sk=app_".$_APPID."');
			oauth_url += '&scope=".$_PERMISOS."'

			window.top.location = oauth_url;
			</script>";
		}else{
			//Ya tenemos los permisos
			echo 'Ya dio permisos';
			//obtenemos los datos del usuario
			$A = file_get_contents('https://graph.facebook.com/'.$_R['user_id'].'?access_token='.$_R['oauth_token']);
			$A = json_decode($A,true);
			/*echo '<pre>';print_r($A);*/

			//cargamos una imagen de corazon (pueden usar cualkiera)
			$image = imagecreatefromjpeg("corazon.jpg");
			$font = "b.ttf";
			//color negro
			$textcolor1 = imagecolorallocate($image,0,0,0);
			//colo rosa
			$textcolor2 = imagecolorallocate($image,191,46,141);

			//Vamos a usar el nombre del usuario y un numero aleatorio
			$text1 = $A['name'];
			$text2 = mt_rand(10,95).'%';

			//Agregamos el texto a la imagen
			imagettftext($image, 20, 0, 20, 50, $textcolor1, $font, $text1);
			imagettftext($image, 80, 0, 90, 160, $textcolor2, $font, $text2);

			//Creamos la imagen tmp_IDUSUARIO.jpg
			imagejpeg($image,'tmp_'.$A['id'].'.jpg',90);
			//liberamos memoria
			imagedestroy($image);
			//mostramos al user el resultado (no es obligatorio)
			echo '<img src="'.$_MSERVER.'tmp_'.$A['id'].'.jpg">';

			//Texto de la imagen (pueden colocar la url de su aplicacion para que sea mas viral)
			$_P['message'] = trim('Texto en la imagen');
			$_P['source'] = "@" . realpath('tmp_'.$A['id'].'.jpg');

			//iniciamos CURL
			$ch = curl_init();
			curl_setopt($ch, CURLOPT_URL,'https://graph.facebook.com/'.$_R['user_id'].'/photos?access_token='.$_R['oauth_token']);
			curl_setopt($ch, CURLOPT_POST, true);
			curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
			curl_setopt($ch, CURLOPT_POSTFIELDS, $_P);
			$resultado = curl_exec($ch);
			$resultado = json_decode($resultado, true);
			curl_close($ch);

			//si obtenemos el id de la imagen es que se subio perfectamente
			if(is_array($resultado) && isset($resultado['id'])){
				echo '<br/>imagen subida con exito! ID='.$resultado['id'];
			}
			
		}
	}else{
		//aca pondremos un diseño para indicarle al user que no es fan y demas.
		echo 'No es Fan';
	}

	//funcion encargada de obtener los datos que nos da facebook
	function _SR($signed_request, $secret) {
        	list($encoded_sig, $payload) = explode('.', $signed_request, 2);

	        $sig = base64_url_decode($encoded_sig);
        	$data = json_decode(base64_url_decode($payload), true);

	        if(strtoupper($data['algorithm']) !== 'HMAC-SHA256') {
        	        error_log('Unknown algorithm. Expected HMAC-SHA256');
                	return null;
	        }

	        $expected_sig = hash_hmac('sha256', $payload, $secret, $raw = true);
        	if($sig !== $expected_sig) {
	                error_log('Bad Signed JSON signature!');
        	        return null;
	        }

	        return $data;
	}

	function base64_url_decode($input) {
        	return base64_decode(strtr($input, '-_', '+/'));
	}
?>

Aclaración: este código solo funciona en fanpages!

Para agregar su aplicacion a una fanpage solo tienen que usar esta url:

Insertar CODE, HTML o PHP:
https://www.facebook.com/dialog/pagetab?app_id=APP_ID&next=APP_ID_URL

Esto permite agregar su aplicacion a cualquier fanpage de las que sean admin! :)

Descarga:
Insertar CODE, HTML o PHP:
http://www.mediafire.com/?8lae8sw914az2yy

Si no van a mostrar la imagen en pantalla (solo pondran un texto por ejemplo: la imagen fue publicada con exito en tu muro) usen esto:

PHP:
if(is_array($resultado) && isset($resultado['id'])){
	echo '<br/>imagen subida con exito! ID='.$resultado['id'];
	@unlink('tmp_'.$A['id'].'.jpg');
}

Para eliminar la img de su servidor luego de subir la imagen a facebook. Sino toca eliminarlas a mano o con un PHP+CRON
 
Última edición:

giocr

Épsilon
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Desde
24 Mar 2010
Mensajes
756
La verdad no me queda muy claro esto... :ambivalence:
 

Rogg

Delta
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Desde
23 Sep 2009
Mensajes
701
La url para agregar la aplicación me da un error, osea esta (Enlace eliminado).

Muchas gracias por tu aporte.
 

Desiigner

Gamma
Redactor
Verificación en dos pasos desactivada
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
24 Nov 2011
Mensajes
402
Gracias por el aporte, ya mismo me pongo a probar :encouragement:
 

manxel

Eta
SEO
Verificación en dos pasos desactivada
Verificado por Whatsapp
Desde
25 Jun 2011
Mensajes
1.478
Edad
33
Lo probare, pero nos gustaría ver algun DEMO o en donde se este usando, para entender un poco mas, ya que me quedo un poco desorientado.

Gracias! :encouragement:
 

Cicklow

Admin
Épsilon
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Suscripción a IA
Desde
30 May 2011
Mensajes
966

Desiigner

Gamma
Redactor
Verificación en dos pasos desactivada
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
24 Nov 2011
Mensajes
402
Tengo dos preguntas,
¿Como puedo saber cual es la id de mi pagina de fb?
¿En la linea #11 me pide el archivo facebook.php, donde consigo ese archivo?
 

Cicklow

Admin
Épsilon
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Suscripción a IA
Desde
30 May 2011
Mensajes
966
Tengo dos preguntas,
¿Como puedo saber cual es la id de mi pagina de fb?
¿En la linea #11 me pide el archivo facebook.php, donde consigo ese archivo?

1- el id de tu pagina lo obtienes:
a- si tu fanpage aun no tiene nombre de usuario:
Insertar CODE, HTML o PHP:
http://www.facebook.com/pages/Test-Cicklow/467578126597743
el id es: 467578126597743

b- si tu fanpage tiene nombre de usuario se veria como esto:
Insertar CODE, HTML o PHP:
http://www.facebook.com/Test-Cicklow/
Para esto entras a tu fanpage, luego en el logo le das boton derecho, ver imagen y tendras una img con esta url (parecida)
Insertar CODE, HTML o PHP:
http://profile.ak.fbcdn.net/hprofile-ak-prn1/157914_321423734545905_1965590083_n.jpg
En donde el id de tu pagina es: 321423734545905
IDALBUM_IDPAGINA_IDFOTO


2- Enlace eliminado

Saludos
 

Desiigner

Gamma
Redactor
Verificación en dos pasos desactivada
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
24 Nov 2011
Mensajes
402
1- el id de tu pagina lo obtienes:
a- si tu fanpage aun no tiene nombre de usuario:
Insertar CODE, HTML o PHP:
http://www.facebook.com/pages/Test-Cicklow/467578126597743
el id es: 467578126597743

b- si tu fanpage tiene nombre de usuario se veria como esto:
Insertar CODE, HTML o PHP:
http://www.facebook.com/Test-Cicklow/
Para esto entras a tu fanpage, luego en el logo le das boton derecho, ver imagen y tendras una img con esta url (parecida)
Insertar CODE, HTML o PHP:
http://profile.ak.fbcdn.net/hprofile-ak-prn1/157914_321423734545905_1965590083_n.jpg
En donde el id de tu pagina es: 321423734545905
IDALBUM_IDPAGINA_IDFOTO


2- Enlace eliminado

Saludos

Gracias por la información, olvide comentar que ya tenia nombre de usuario :witless:
 

Joker

Beta
Social Media
Verificación en dos pasos desactivada
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
10 Jun 2012
Mensajes
62
Vaya amigo, gracias por el aporte. Muy bueno. :encouragement:
 

byNiko

Dseda
Social Media
Verificación en dos pasos desactivada
Desde
20 Ago 2012
Mensajes
1.051
Por favor, ten en cuenta 📝 que si deseas hacer un trato 🤝 con este usuario, está baneado 🔒.
Como siempre, sos groso.
 

edizzz

Gamma
Verificación en dos pasos desactivada
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
5 Oct 2012
Mensajes
182
me salio este error mira Parse error: syntax error, unexpected T_VARIABLE in /homepages/23/d4319*****.com/tab.php on line 72
 

FRMIG

Gamma
Verificación en dos pasos desactivada
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
5 Ago 2011
Mensajes
276
Gracias, muchas gracias.! :welcoming:
 

martodvo

Gamma
Verificación en dos pasos desactivada
Desde
9 Dic 2010
Mensajes
155
Gracias por el code.

No entendi mucho pero voy a volver a reelerlo a ver que pasa sino te contacto :D
 

¡Regístrate y comienza a ganar!

Beneficios

  • Gana dinero por participar
  • Gana dinero por recomendarnos
  • Descubre ofertas de empleo diariamente
  • Negocios seguros
  • ¡Información premium y más!

Acceder

¿Ya tienes una cuenta? Accede aquí

Arriba