2

我正在使用 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);
}
?>

请帮我解决这个问题。谢谢

4

2 回答 2

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中查看。

于 2012-12-19T17:26:23.813 回答
0

另一种解决方案:

https://developers.facebook.com/apps/

应用>>[app_name]>>基本

并向下滚动到“使用 Facebook 登录的网站”

在文本字段中输入所需的 URL。

于 2012-12-19T18:37:56.707 回答