我有以下问题让我发疯。我使用Facebook PHP SDK(https://github.com/facebook/php-sdk/)发布的示例代码来识别用户。它适用于大多数测试用户,但对于某些用户,实例创建不起作用。我尝试过使用相同的机器和不同的机器,它不会改变任何东西。每个用户都在我的开发帐户中正确设置为测试用户。
可能是什么原因? 非常感谢提前。
require '../lib/facebook.php';
// Create our Application instance (replace this with your appId and secret).
$facebook = new Facebook(array(
'appId' => 'XXXXXXXXXX',
'secret' => 'XXXXXXXXXXX',
));
// Get User ID
$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;
}
}
// Login or logout url will be needed depending on current user state.
if ($user) {
$logoutUrl = $facebook->getLogoutUrl();
} else {
$loginUrl = $facebook->getLoginUrl(array(
'scope' => 'publish_stream, publish_actions',
'redirect_uri' => 'http://apps.facebook.com/xxxxx/'
));
}
?>
<!doctype html>
<html xmlns:fb="http://www.facebook.com/2008/fbml">
<head>
<title>php-sdk</title>
</head>
<body>
<h1>php-sdk</h1>
<?php if ($user): ?>
<a href="<?php echo $logoutUrl; ?>">Logout</a>
<?php else: ?>
<div>
Login using OAuth 2.0 handled by the PHP SDK:
<a href="<?php echo $loginUrl; ?>" target="_top">Login with Facebook</a>
</div>
<?php endif ?>
<h3>PHP Session</h3>
<pre><?php print_r($_SESSION); ?></pre>
<?php if ($user): ?>
<h3>You</h3>
<img src="https://graph.facebook.com/<?php echo $user; ?>/picture">
<h3>Your User Object (/me)</h3>
<pre><?php print_r($user_profile); ?></pre>
<?php else: ?>
<strong><em>You are not Connected.</em></strong>
<?php endif ?>
</body>
</html>
答案 0 :(得分:0)
我终于找到了答案。问题与代码无关。这是因为测试用户绕过了请求接受邀请的通知,而是直接输入了应用程序URL。
您必须删除测试用户并重新创建它。然后,测试用户将收到新通知,然后必须接受它。