2015-10-14 160 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>'; 
相關問題