Obtener datos de Facebook PHP
- 08/04/2011
- 11:58 pm
Como muchos sabemos Facebook se convirtió en algo que casi todos usamos. Elvago9 en Taringa posteo un código para obtener datos de facebook ya sea para crear un sistema de usuarios, un sistema de estadisticas, hacer spam 😛 o miles de cosas.
Primero tienen que crear una aplicación en Facebook para obtener las key.
index.php
<?php require_once("fb.php"); // Para conseguir las KEY, crean la aplicacion desde http://www.facebook.com/developers/createapp.php $facebook = new Facebooklogin('YOUR_APP_ID', 'UR_APP_SECRET', 'YOUR_URL'); // La url debe coneter el archivo donde esta ese script. Ejemplo: http://miweb.com/loginconfacebook.php/ // A continuacion se declaran los permisos $facebook->permissions("user_birthday"); // Se declara el permiso de acceso a la fecha de cumpleaños $facebook->permissions("email"); // Se decalra el permiso de acceso al email // Termina declaración de permisos $facebook->conect(); // Empieza la conexión a Facebook $datos = $facebook->getinfo(); // Se definde la variable datos con los datos del usuario. echo "<strong>Nombre del usuario:</strong> ".$datos['name']; echo "<br /><strong>Primer nombre:</strong> ".$datos['first_name']; echo "<br/><strong>Apellido:</strong> ".$dstos['last_name']; echo "<br /><strong>URL al perfil:</strong>". $datos['url_perfil']; echo "<br /><strong>Genero:</strong> ".$datos['genero']; echo "<br /><strong>Email:</strong> ".$datos['email']; // Solamente funciona si declaraste el permiso para tener el email echo "<br /><strong>Cumpleaños:</strong> ".$datos['birthday']; // Solamente funciona si declaraste el permiso para tener el cumplaeños echo "<br /><strong>Imagen de perfil:</strong> <br /><img src='".$datos['url_thumb']."' />"; ?> |
En index.php tenes que editar la linea
4 | $facebook = new Facebooklogin('YOUR_APP_ID', 'UR_APP_SECRET', 'YOUR_URL'); |
fb.php
<?php if(!function_exists('file_get_contents')){echo('Se necesita la extencion FILE_GET_CONTENTS de PHP.');} if(!function_exists('json_decode')){echo('Se necesita la extencion JSON de PHP.');} class Facebooklogin { private $appId = ""; private $appSecret = ""; private $appUrl = ""; private $dialog_url = ""; private $code = ""; private $access_token = ""; private $abr_gender = array('male'=> 'Masculino','female' => 'Femenino'); private $user = ""; private $permissions = array(); public function __construct($app_id, $app_secret, $app_url) { if(!($app_id == "") OR ($app_secret == "") OR ($app_url == "")) { $this->appId = $app_id; $this->appSecret = $app_secret; $this->appUrl = $app_url; } else { echo "Debe ingresar la ID, la ID secret, la URL, y los permisos de su aplicacion en Facebook."; } } public function permissions($permissions) { if(($permissions == "email") OR ($permissions == "user_birthday") OR ($permissions == "offline_access")) { $this->permissions[$permissions] = "On"; } } public function conect() { if(isset($_REQUEST["code"])) { $this->code = $_REQUEST["code"];}else{$this->code = "";} $this->dialog_url = "https://www.facebook.com/dialog/oauth?client_id=".$this->appId."&redirect_uri=".urlencode($this->appUrl)."&scope="; if(empty($this->code)){ echo("<script>top.location.href='".$this->dialog_url."'</script>"); } $this->access_token = file_get_contents("https://graph.facebook.com/oauth/access_token?client_id=".$this->appId."&redirect_uri=".$this->appUrl."&client_secret=".$this->appSecret."&code=".$this->code); } public function getinfo() { if($this->user = json_decode(file_get_contents('https://graph.facebook.com/me?'.$this->access_token))){ $r['name'] = $this->user->name; $r['first_name'] = $this->user->first_name; $r['last_name'] = $this->user->last_name; $r['url_perfil'] = $this->user->link; $r['genero'] = $this->abr_gender[$this->user->gender]; if($this->permissions['email']) { $r['email'] = $this->user->email; } if(isset($this->permissions['user_birthday'])) { $r['birthday'] = $this->user->birthday; } $r['url_thumb'] = "https://graph.facebook.com/me/picture?type=large&".$this->access_token; return $r; } else return array(); } } ?> |
¿Necesitas ayuda? o ¿Asesoramiento webmaster? Registrate en nuestro foro de consultas
Posts Relacionados