Skip to content

Instantly share code, notes, and snippets.

@juanpablocs
Last active April 25, 2016 17:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save juanpablocs/0bf56dffad8d19ba32fa961a75f747e9 to your computer and use it in GitHub Desktop.
Save juanpablocs/0bf56dffad8d19ba32fa961a75f747e9 to your computer and use it in GitHub Desktop.
AccessToken Facebook connect with javascript and php 5

#Facebook Access Token

Aquí en este ejemplo veremos como obtener la información del usuario del lado backend enviando el accesstoken desde el cliente mediante javascript.

fbAsyncInit.js

 window.fbAsyncInit = function() {
  FB.init({
    appId      : '{{APPID}}',
    xfbml      : true,
    version    : 'v2.6'
  });

  FB.getLoginStatus(function(response) {
    switch(response.status){
      case 'connected':
        $.post('/user/connect', response, function(res){
          if(res.error)
            console.log('error: ',res.message);
          else
            console.log('welcome user ', res.data.userName);
        },'json');
      break;
      default:
        console.log('not user logged');
      break;
    }
  });

};

(function(d, s, id){
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) {return;}
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/en_US/sdk.js";
  fjs.parentNode.insertBefore(js, fjs);
 }(document, 'script', 'facebook-jssdk'));

UserConnect.php

$post = $request->getParsedBody();

// instance fb
$fb = new \Facebook\Facebook([
  'app_id'                => '{{APPID}}',
  'app_secret'            => '{{APPSECRET}}',
  'default_graph_version' => 'v2.5',
]);

// establecer accesstoken para todas las peticiones
$fb->setDefaultAccessToken($post['authResponse']['accessToken']);

try {
  $response = $fb->get('/me');
  $userNode = $response->getGraphUser();
  echo json_encode(['error'=>false, 'data'=> ['userName'=> $userNode->getName()]]);
} catch(\Facebook\Exceptions\FacebookResponseException $e) {
  // When Graph returns an error
  echo json_encode(['error'=>true,'message'=>'Graph returned an error: ' . $e->getMessage()]);
} catch(\Facebook\Exceptions\FacebookSDKException $e) {
  // When validation fails or other local issues
  echo json_encode(['error'=>true,'message'=>'Facebook SDK returned an error: ' . $e->getMessage()]);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment