我正在使用facebook api在我的网站上使用facebook的登录功能。但是它存在问题,登录后它没有重定向到我的网站。它重定向到Facebook主页。我不知道为什么会这样。我的代码如下:
此文件名为logign_facebook.php
<?php
require 'facebook/facebook.php';
require 'config/fbconfig.php';
require 'config/functions.php';
$facebook = new Facebook(array(
'app_id' => APP_ID,
'app_seceret' => APP_SECRET,
));
$user = $facebook->getUser();
if ($user) {
try {
// Proceed knowing you have a logged in user who's authenticated.
$user_profile = $facebook->api('/me');
} catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
if (!empty($user_profile )) {
# User info ok? Let's print it (Here we will be adding the login and registering routines)
$username = $user_profile['name'];
$uid = $user_profile['id'];
$email = $user_profile['email'];
$user = new User();
$userdata = $user->checkUser($uid, 'facebook', $username,$email,$twitter_otoken,$twitter_otoken_secret);
if(!empty($userdata)){
session_start();
$_SESSION['id'] = $userdata['id'];
$_SESSION['oauth_id'] = $uid;
$_SESSION['username'] = $userdata['username'];
$_SESSION['email'] = $email;
$_SESSION['oauth_provider'] = $userdata['oauth_provider'];
header("Location: home.php");
}
} else {
# For testing purposes, if there was an error, let's kill the script
die("There was an error.");
}
} else {
# There's no active session, let's generate one
$login_url = $facebook->getLoginUrl(array( 'scope' => 'email'));
header("Location: " . $login_url);
}
?>
请帮我解决这个问题。 感谢
答案 0 :(得分:1)
Facebook需要知道重定向到用户登录时的URL。
您可以通过PHP SDK中的 getLoginUrl()函数传递此信息,如下所示:
$login_url = $facebook->getLoginUrl(array(
'redirect_uri' => 'http://yoururlhere.com/logign_facebook.php',
'scope' => array('email')
));
可以在https://developers.facebook.com/docs/reference/php/facebook-getLoginUrl看到此功能的完整参数列表。
答案 1 :(得分:0)
另一种解决方案:
https://developers.facebook.com/apps/
应用和GT;&GT; [APP_NAME] GT;&GT;基本
然后向下滚动到“使用Facebook登录的网站”
在文本字段中输入所需的网址。