0

我正在尝试仅使用 php sdk 登录 facebook 应用程序。为什么php身份验证不起作用。->获取用户();始终返回零。

    <?php


// Provides access to app specific values such as your app id and app secret.
// Defined in 'AppInfo.php'
require_once('AppInfo.php');

// Enforce https on production
if (substr(AppInfo::getUrl(), 0, 8) != 'https://' && $_SERVER['REMOTE_ADDR'] != '127.0.0.1') {
  header('Location: https://'. $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']);
  exit();
}

// This provides access to helper functions defined in 'utils.php'
require_once('utils.php');
require_once('sdk/src/facebook.php');

$facebook = new Facebook(array(
  'appId'  => AppInfo::appID(),
  'secret' => AppInfo::appSecret(),
  'sharedSession' => true,
  'trustForwarded' => true,
        'cookie' => true
));



$auth_url = $facebook->getLoginUrl(array(
        'scope' => 'email,publish_stream'       
));

$user = $facebook->getUser();

if (empty($user)) {
    echo("<script> top.location.href='" . $auth_url . "'</script>");
} else {
    echo ("Welcome User: " . $user);
}

?>
4

1 回答 1

2

您没有将 acces_token 设置为 facebook 对象。当用户在认证后被重定向到你的页面时,你应该在你的$facebook对象中设置用户 access_token 然后调用$facebook->getUser()

您可以执行以下操作:

if(isset($_GET['code'])){
  $access_token = $facebook->getAccessTokenFromCode($_GET['code']);
  $facebook->setAccessToken($access_token);
}
$user = $facebook->getUser();
于 2012-11-01T16:09:39.887 回答