php-graph-sdk-5.x.zip を拾ってこよう。


・共通(facebook.phpとする)
require_once('Facebook/autoload.php');

define('FB_APP_ID', '(facebookから取得)');
define('FB_APP_SECRET', '(facebookから取得)');
define('FB_CALLBACK', '(自分のcallback)');



・呼び出し
session_start();
require_once('facebook.php');

$fb = new Facebook\Facebook([
'app_id' => FB_APP_ID,
'app_secret' => FB_APP_SECRET,
'default_graph_version' => 'v10.0'
]);
$helper = $fb -> getRedirectLoginHelper();

$fb_scope = ['public_profile,email']; // ここを変更すれば、色々なものを取得できるようになるらしい。
$fb_link = $helper -> getLoginUrl(FB_CALLBACK, $fb_scope);

<a href="<?= htmlspecialchars($fb_link); ?>">facebook login</a>



・CALLBACK
session_start();
require_once('facebook.php');

try {
$access_token = $helper -> getAccessToken();
} catch(Facebook\Exceptions\FacebookResponseException $e) {
echo $e -> getMessage();
exit();
} catch(Facebook\Exceptions\FacebookSDKException $e) {
echo $e -> getMessage();
exit();
}

if (isset($access_token)) {
try {
$res = $fb -> get('/me?fields=id,name,email', $access_token);
$profile = $res -> getGraphUser();
} catch(Facebook\Exceptions\FacebookResponseException $e) {
echo $e -> getMessage();
exit();
} catch(Facebook\Exceptions\FacebookSDKException $e) {
echo $e -> getMessage();
exit();
}

// 成功。
// id, name, emailを書き込もう。
// どっかへ戻る。
}
else {
// エラー処理
// どっかへ戻る。
}
?>

 

facebook login