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