0

phpSDKのみを使用してFacebookアプリケーションにログインしようとしています。PHP認証が機能しない理由。-> getUser(); 常にゼロを返します。

    <?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 に答える