サイトのユーザーが既存の Facebook アカウントを使用してログインできるようにしたいと考えています。
developers.facebook.comから Facebook PHP SDK をダウンロードし、Web サイト用のアプリをセットアップしました。SDK にバンドルされている example.php ファイルを使用して、アプリの「appID」と「secret」の番号を交換しました。
注: コードでは、'appID' と 'secret' は実際の同等のものを置き換えています。
私はこれが私のヘッダーです:
require 'src/facebook.php';
(これは間違いなく見つかっています)
これは、ログインが行われるメイン ページのコードです (これも example.php から):
<?php
$facebook = new Facebook(array(
'appId' => 'appID',
'secret' => 'secret',
));
var_dump($facebook);
// Get User ID
$user = $facebook->getUser();
echo "<br />";
var_dump($user);
if ($user) {
try {
$user_profile = $facebook->api('/me');
} catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
}
if ($user) {
$logoutUrl = $facebook->getLogoutUrl();
} else {
$loginUrl = $facebook->getLoginUrl();
}
$naitik = $facebook->api('/naitik');
?>
<?php var_dump($user); ?>
<h1>php-sdk</h1>
<?php if ($user): ?>
<a href="<?php echo $logoutUrl; ?>">Logout</a>
<?php else: ?>
<?php echo "LoginURL:"; var_dump($loginUrl);?>
<div>
<a href="<?php echo $loginUrl; ?>">Login with Facebook</a>
</div>
<?php endif ?>
<h3>PHP Session</h3>
<pre><?php print_r($_SESSION); ?></pre>
<?php if ($user): ?>
<h3>You</h3>
<img src="https://graph.facebook.com/<?php echo $user; ?>/picture">
<h3>Your User Object (/me)</h3>
<pre><?php print_r($user_profile); ?></pre>
<?php else: ?>
<strong><em>You are not Connected.</em></strong>
<?php endif ?>
<h3>Public profile of Naitik</h3>
<img src="https://graph.facebook.com/naitik/picture">
<?php echo $naitik['name']; ?>
Facebook にログインしていないときにリンクをクリックすると、Facebook のログイン ページに移動します。ログイン後、URL に新しい変数 (状態、コードなど) を付けてメイン サイトにリダイレクトします。「ログイン」すると、var_dump($user)
が返されますint(0)
。
誰かが私を正しい方向に向けることができますか? ユーザーを割り当てられない理由がわかりません。
ダンプの結果$facebook
:
object(Facebook)#182 (9) {
["sharedSessionID:protected"]=> NULL
["appId:protected"]=> string(15) "appID"
["appSecret:protected"]=> string(32) "secret"
["user:protected"]=> NULL ["signedRequest:protected"]=> NULL
["state:protected"]=> NULL ["accessToken:protected"]=> NULL
["fileUploadSupport:protected"]=> bool(false)
["trustForwarded:protected"]=> bool(false)
}