Skip to content

Instantly share code, notes, and snippets.

@mogya
Last active December 16, 2015 08:29
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 mogya/5405922 to your computer and use it in GitHub Desktop.
Save mogya/5405922 to your computer and use it in GitHub Desktop.
CakePHP controller for facebook login with Facebook PHP SDK (v.3.2.2)
<?php
App::import('Vendor', 'facebook/facebook');
class FacebookController extends AppController{
protected $facebook = NULL;
function beforeFilter(){
$this->facebook = new Facebook(array(
'appId' => Configure::read('facebook.appid'),
'secret' => Configure::read('facebook.secret'),
));
}
function login(){
$user = $this->facebook->getUser();
if ($user) {
error_log('already logged-in');
$this->redirect(array('action'=>'callback'));
}else{
error_log('go to facebook login.');
$this->autoRender = false;
$next = 'http://*****/facebook/callback/';
$url = $this->facebook->getLoginUrl(array('redirect_uri' => $callback, 'scope' => 'email,publish_actions'));
$this->redirect($url);
}
}
function callback(){
$user = $this->facebook->getUser();
if ($user) {
try {
$user_profile = $this->facebook->api('/me');
error_log('got user!');
$this->set('user_profile', $user_profile);
} catch (FacebookApiException $e) {
error_log(json_encode($e));
$user = null;
}
}else{
error_log('fail to login?');
}
}
}
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment