Skip to content

Instantly share code, notes, and snippets.

@ysaotome
Last active December 31, 2016 08:09
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ysaotome/5028765 to your computer and use it in GitHub Desktop.
Save ysaotome/5028765 to your computer and use it in GitHub Desktop.
Facebook連携サンプルプログラム 出来る事 (1)ログイン、ログアウト処理 (2)ログインしている人の情報を取得する処理 (3)ログインしている人の友達リストを取得する処理
<?php
//Facebook公式SDK(開発セット)を読み込む
require './facebook-php-sdk/src/facebook.php';
//AppIDとAppSecretをFacebook Developer Centerにて取得して下さい。
// https://developers.facebook.com/apps/
//AppIDとAppSecretを設定してください。
$facebook = new Facebook(array(
'appId' => 'APP ID',
'secret' => 'APP SECRET',
));
//ログイン状態を取得する
$user = $facebook->getUser();
if ($user) {
try {
//ログインしていたら、自分のユーザプロファイルを取得
$user_profile = $facebook->api('/me');
} catch (FacebookApiException $e) {
//ユーザプロファイル取得失敗 = ログインしていない
error_log($e);
$user = null;
}
try {
//ログインしていたら、自分の友達一覧を取得
$user_friends = $facebook->api('/me/friends');
} catch (FacebookApiException $e) {
//友達一覧取得に失敗 = ログインしていない
error_log($e);
$user = null;
}
}
if ($user) {
//ログインしていたら、ログアウトURLを取得。
$params = array( 'next' => 'http://'.$_SERVER['SERVER_NAME'].$_SERVER['SCRIPT_NAME'] );
$logoutUrl = $facebook->getLogoutUrl($params);
//セッションのクリア
$facebook->destroySession();
} else {
//ログインして無いなら、ログインURLを取得。
$loginUrl = $facebook->getLoginUrl();
}
//HTMLヘッダを表示
echo <<<_HEADER_
<html>
<head>
<meta content='text/html; charset=utf-8' http-equiv='content-type'>
</head>
<h1>Facebook連携サンプルプログラム</h1>
<p>出来る事</p>
<ul>
<li>1)ログイン、ログアウト処理</li>
<li>2)ログインしている人の基本情報を取得する処理</li>
<li>3)ログインしている人の友達リストを取得する処理</li>
</ul>
_HEADER_;
//==========================================================================
echo '<hr />'."\n";
//ログインボタン、ログアウトボタンを表示
if ($user) {
echo '<a href="'. $logoutUrl .'">ログアウト</a>'."\n";
} else {
echo '<div><a href="'. $loginUrl .'">ログイン</a></div>'."\n";
}
//==========================================================================
echo '<hr />'."\n";
//ログインしていたら、ログインしている人の情報を取得する
if ($user) {
echo '<h3>ログインしている人の写真</h3>'."\n";
echo '<img src="https://graph.facebook.com/'. $user .'/picture">'."\n";
echo '<h3>ログインしている人の情報 (/me)</h3>'."\n";
echo '<pre>'."\n";
echo print_r($user_profile);
echo '</pre>'."\n";
echo '<h3>ログインしている人の友達リスト (/me/friends)</h3>';
//友達リストからユーザ情報だけ取得
$user_friends_data = $user_friends['data'];
echo '<h4>友達の数:'. count($user_friends_data) . ' 人</h4>'."\n";
$i=0;
foreach ($user_friends_data as $fkey=>$fvalue) {
$i++;
echo '<a href="http://www.facebook.com/profile.php?id='.$fvalue[id].'"><img src="https://graph.facebook.com/' . $fvalue[id] . '/picture" border="0" title="' . $fvalue[name].'"/></a>';
if ($i % 5 == 0) {
echo '<br><br>';
}
}
} else {
echo '<strong><em>あなたはまだログインしていません</em></strong>'."\n";
}
echo<<<_FOOTER_
</body>
</html>
_FOOTER_;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment