Cicklow Seguir
Admin
Épsilon
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
¡Usuario popular!
Suscripción a IA
- Desde
- 30 May 2011
- Mensajes
- 776
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...)
Aclaración: este código solo funciona en fanpages!
Para agregar su aplicacion a una fanpage solo tienen que usar esta url:
Esto permite agregar su aplicacion a cualquier fanpage de las que sean admin!
Descarga:
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:
Para eliminar la img de su servidor luego de subir la imagen a facebook. Sino toca eliminarlas a mano o con un PHP+CRON
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: