2015-10-14 197 views
0

我是网络开发新手,仍然是初学者。调用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

回答

0

您错过了初始化您的$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>';