1
Facebookと統合された簡単な概念実証ウェブアプリケーションを作成しています。基本的な機能は、ユーザーに関する基本的な情報と、友人の友人や友人のプロフィール写真を表示する必要があることです。 Facebook PHP-SDKを介して生成されたウェブアプリケーションのログアウトリンクをクリックすると、ページは単に更新されて表示されます。ユーザーは明らかにまだ私のWebアプリケーションにログインしています。彼らは、しかし、適切なFacebookのログアウトされます。なぜ私はこの動作を見ているすべてのアイデア?次のように私のコードは次のとおりです。FacebookのPHP-SDKを使用すると、ユーザーがFacebookからログアウトしたかどうかをどのように判断できますか?
<?php
require 'sdk/facebook.php';
$facebook = new Facebook(
array(
'appId' => 'xxx' //actual app ID and secret go here,
'secret' => 'xxx'
)
);
##
## Instantiate user object if a logged in user exists
if ($user = $facebook->getUser()) {
try {
$user_profile = $facebook->api('/me');
} catch (FacebookApiException $e) {
$user = NULL;
}
}
##
## Set login/logout url
$url = $user ? $facebook->getLogoutUrl() : $facebook->getLoginUrl();
##
## Instantiate friend object data
if ($user) {
try {
$friend_api_data = $facebook->api('/me/friends');
$friends = $friend_api_data['data'];
// Shuffle friends
shuffle($friends);
$shuffled_friends = array();
for ($i = 0; $i < count($friends) && $i < 6; $i++) {
$shuffled_friends[] = $friends[$i];
}
} catch (FacebookApiException $e) {
}
}
?>
<!doctype html>
<html>
<head>
<title>Test</title>
<link href="css/bootstrap.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div class="container">
<h1>Facebook Integration</h1>
<!-- Login/Logout URL -->
<a href="<?= $url ?>"><?= $user ? 'Logout' : 'Login' ?></a>
<!-- Current User Data -->
<?php if ($user): ?>
<h2>Hi, <?= $user_profile['name'] ?></h2>
<img src="https://graph.facebook.com/<?= $user ?>/picture" />
<pre>
<?= print_r($user_profile, TRUE) ?>
</pre>
<?php endif; ?>
<!-- Friend Data -->
<?php if($shuffled_friends): ?>
<h2>Your Friends</h2>
<ul>
<?php foreach($shuffled_friends as $f): ?>
<li>
<a href="http://www.facebook.com/<?= $f['id'] ?>">
<img src="https://graph.facebook.com/<?= $f['id'] ?>/picture" />
<?= $f['name'] ?>
</a>
</li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
</div>
</body>
</html>
これは機能しますが、ユーザーがログインできなくなります。; – rybosome
ログアウトURLを別のスクリプトにポイントします。次に、destroySession関数を実行した後、getLogoutUrlにリダイレクトするlogout.php。 – fire