Conectar con Facebook no image

Published on septiembre 8th, 2011 | by Miguel Angel Berlanga Alvarez

1

Conectar con Facebook (Graph API)

En este post describimos como conectar con Facebook una aplicación utilizando el Graph API que nos proporciona Facebook.

En el post anterior vimos como conectar nuestra aplicación con Facebook utilizando el php SDK de github, ahora vamos a conectarnos y a solicitar los permisos que necesitemos usando otra manera diferente.

Como en el post anterior necesitaremos los datos de nuestra aplicación, por ejemplo:

$app_id = “1679789463367854″;
$app_secret = “c1d64bf5ag6h76989269794a590a2ba31″;

Esta variable la utilizaremos para redireccionar la aplicación en caso de obtener los permisos.
$urlAplicacion= “http://apps.facebook.com/super_horoscopo/index.php”;

Para esto vamos a usar el access token del usuario que Facebook nos proporciona, para realizar esto tienes que tener activada el protocolo OAuth 2.0 en las características de tu aplicación.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
	$app_id = "16797893367854";
         $app_secret = "c2d64bf5ag6h76989269794a5a902ba39";
 
        $urlAplicacion = "http://apps.facebook.com/super_horoscopo/index.php";
 
      // Utilizamos la variable 'code' para saber si tenemos session    
        	  session_start();
   $code = $_REQUEST["code"];
 
   if(empty($code)) {            
       $dialog_url= "http://www.facebook.com/dialog/oauth?client_id="
.$app_id."&redirect_uri=".urlencode($urlAplicacion)."&scope=publish_stream";   
         // La variable scope contendrá los permisos que necesitamos.
            echo("<script>top.location.href='".$dialog_url."'</script>");
            die();
        }else{
    //Recuperamos el access token para utilizarlo con los permisos.
 $token_url="https://graph.facebook.com/oauth/access_token?client_id="
.$app_id."&client_secret=".$app_secret."&redirect_uri="
.urlencode($urlAplicacion)."&code=".$code;
 
   $response = file_get_contents($token_url);
   $params = null;
   parse_str($response, $params);
   $access_token = $params['access_token'];

Este es el ejemplo que está en facebook developer el cual hemos adaptado:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
   $app_id = "YOUR_APP_ID";
   $app_secret = "YOUR_APP_SECRET";
   $my_url = "YOUR_URL";
 
   session_start();
   $code = $_REQUEST["code"];
 
   if(empty($code)) {
     $_SESSION['state'] = md5(uniqid(rand(), TRUE)); //CSRF protection
     $dialog_url = "http://www.facebook.com/dialog/oauth?client_id=" 
       . $app_id . "&redirect_uri=" . urlencode($my_url) . "&state="
       . $_SESSION['state'];
 
     echo("<script> top.location.href='" . $dialog_url . "'</script>");
   }
 
   if($_REQUEST['state'] == $_SESSION['state']) {
     $token_url = "https://graph.facebook.com/oauth/access_token?"
       . "client_id=" . $app_id . "&redirect_uri=" . urlencode($my_url)
       . "&client_secret=" . $app_secret . "&code=" . $code;
 
     $response = file_get_contents($token_url);
     $params = null;
     parse_str($response, $params);
 
     $graph_url = "https://graph.facebook.com/me?access_token=" 
       . $params['access_token'];
 
     $user = json_decode(file_get_contents($graph_url));
     echo("Hello " . $user->name);
   }
   else {
     echo("The state does not match. You may be a victim of CSRF.");
   }

Tags: , , , , , , , , ,


About the Author



One Response to Conectar con Facebook (Graph API)

  1. jidot says:

    Gracias, me vino muy bien

Deja un comentario

Tu dirección de correo electrónico no será publicada.


9 − = dos

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Back to Top ↑