调用Facebook登录时出错登录
问题描述:
我是网络开发新手,仍然是初学者。调用Facebook登录时出错登录
我不确定如何为会议呼叫的FaceBook,如果有任何代码。然而,我已经在我想要我的脸书被加载的所有页面上添加了这个。我相信这是Facebook SDK。例如,我在我的register.php和login.php中添加了这段代码。
<body>
<script>
window.fbAsyncInit = function() {
FB.init({
appId : '<?php echo $config['appId']; ?>',
xfbml : true,
version : 'v2.4'
});
};
(function(d, s, id){
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {return;}
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_US/sdk.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>
我还在我的config.php中添加了这个,我相信这是FB登录的配置。
$config = array();
然而,每次我试图点击Facebook上的按钮在我的login.php时间,会有误差,使得
Fatal error: Call to a member function getLoginUrl() on a non-object in C:\wamp\www\sggrocer\loginFb.php on line 13
loginFB.php
<?php
session_start();
include('ajax-helper/config.php');
$_SESSION[$PROJECT_NAME . '-loginFb'] = true;
unset($_SESSION[$PROJECT_NAME . '-logout']);
$params = array(
'scope' => 'email, user_birthday',
'redirect_uri' => $base_url . "http://localhost/sggrocer/",
);
$loginUrl = $facebook->getLoginUrl($params);
header('Location:' . $loginUrl);
?>
这是我的login.php: https://jsfiddle.net/Snurainiyakob/V4u5X/872/
和UI如下: enter image description here
答
您错过了初始化您的$facebook
对象。
请看看官方文档here。它提供了很好的例子来开始。
$fb = new Facebook\Facebook([
'app_id' => '1475470649428121',
'app_secret' => '{your-app-secret}',
'default_graph_version' => 'v2.4',
]);
$helper = $fb->getRedirectLoginHelper();
$permissions = ['email']; // Optional permissions
$loginUrl = $helper->getLoginUrl('https://example.com/fb-callback.php', $permissions);
echo '<a href="' . htmlspecialchars($loginUrl) . '">Log in with Facebook!</a>';