我希望我网站上的用户能够使用他们现有的 Facebook 帐户登录。
我从developers.facebook.com下载了Facebook PHP SDK并为我的网站设置了一个应用程序。我只是使用了与 sdk 捆绑在一起的 example.php 文件,并将我的应用程序的“appID”和“秘密”的数字换掉了。
注意:在代码中,“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)
}