// Function for facebook login
function facebook_login() {
$output = array();
// Create facebook object for user login.
$config = array();
$config['appId' ] = 'XXXXXXX';
$config['secret'] = 'XXXXXXX';
$config['cookie'] = true;
session_start();
$code = $_GET['code'];
$facebook_user = null;
// Create the facebook user object
$facebook = new Facebook(array(
'appId' => $config['appId'],
'secret' => $config['secret'],
'cookie' => $config['cookie'],
));
// Get User ID
$facebook_user = $facebook->getUser();
// If facebook user id not equal to 0
if ($facebook_user) {
try {
// Proceed knowing you have a logged in user who's authenticated.
$user_profile = $facebook->api('/me');
$output['facebookurl'] = 'user/register';
return $output; // Returns a result.
}
catch (FacebookApiException $e) {
drupal_set_message($e, 'error');
$facebook_user = null;
}
}
else {
$facebook_params = array(
'scope' => 'email',
'redirect_uri' => 'http://localhost/mywebsite',
'display' => 'popup',
'code' => $code,
);
$output['facebookurl'] = $facebook->getLoginUrl($facebook_params); // Returns the facebook login url as result.
}
}
這裏是Facebook登錄我的PHP代碼。某些事件會調用facebook_login()
函數,並會根據$output
結果進行一些處理。
問題是$facebook_user
總是0,即我總是得到getLoginUrl
作爲輸出。我已經嘗試了與此問題相關的stackoverflow中的所有答案,但沒有人幫助我。
我在我的本地主機上測試這個應用程序,並在facebook應用程序設置中將網站URL設置爲http://localhost/mywebsite
。
請幫忙!
您是否啓用了離線訪問權限? Plus是您的重定向網址在應用程序配置中相同嗎? – AlphaMale 2012-08-07 06:46:12
謝謝你,在我的應用程序中,我已啓用'刪除offline_access權限設置'。是的,正如問題中提到的,網站URL與'redirect_uri'相同。 – subhojit777 2012-08-07 06:52:09
您不需要'offline_access'權限。 – 2012-08-07 11:45:52