我希望我的网站上的用户能够使用他们现有的Facebook帐户登录。添加Facebook登录到自己的网站
我已经从developers.facebook.com下载了Facebook PHP SDK并为我的网站设置了一个应用程序。我刚刚使用了与SDK捆绑在一起的example.php文件,并将我的应用的'appID'和'secret'换成了数字。
注:在代码 'APPID' 和 '秘密' 要更换实际相当于
我这是我的头:
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)
}
感谢您的回复。当我从我的站点导航到fbaccess.php并且'var_dump($ user)'测试用户是否连接,但是当我在我的站点中包含fbaccess.php时var_dump($ user)''返回0.我想这个问题可能是由于我的网站是一个WordPress站点。 Wordpress使用某种类型的'mod_rewrite',它删除'/ index。PHP的URL,所以我的facebook应用程序的site_url不准确。我的情况是独特的,我主要使用wordpress发布功能,网站的其余部分是我自己的编码/数据库(我不使用后循环或页面布局)。 – iRector
然后你可以使用Facebook或社交登录插件。尝试使用http://wordpress.org/extend/plugins/loginradius-for-wordpress/进行Facebook登录。 –