无法弄清楚为什么它在我的网站和 facebook 之间不断向前循环运行,从不终止最后一步(即将状态发布到墙上)。
require 'facebook.php';
//Create our Application instance (replace this with your appId and secret).
$facebook = new Facebook(array(
'appId' => 'XXXXXXXXXXX',
'secret' => 'XXXXXXXXXXXXXXXXXXXXX',
));
$user = $facebook->getUser();
根据用户是否登录,我们可能拥有也可能不拥有这些数据。
如果我们在这里有一个 $user id,这意味着我们知道该用户已登录 Facebook,但我们不知道访问令牌是否有效。如果用户退出 Facebook,则访问令牌无效。
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 ($user) {
$logoutUrl = $facebook->getLogoutUrl();
} else {
$loginUrl = $facebook->getLoginUrl();
}
所以这是我发现的两种不同解决方案的非常肮脏的混搭。如果我在单独的文档上执行权限,然后在没有 if 语句的情况下加载下一部分,它实际上没有问题。所以我知道我已正确连接到 Facebook....
if ($user):
if(array_key_exists('publish_stream', $permissions['data'][0]) ) {
// Permission is granted!
// Do the related task
$post_id = $facebook->api('/me/feed', 'post', array('message'=>'Testing testing 123!'));
echo "<br><br><br><h1> POSTED STATUS TO WALL!</h1>";
} else {
// We don't have the permission
// Alert the user or ask for the permission!
echo "Click Below to Enter!";
header( "Location: " . $facebook->getLoginUrl(array("scope" => "publish_stream")) );
}
这里的问题是它一遍又一遍地运行发布流权限(标题转发并超时,重定向太多),并且永远不会抓住 if 语句来实际发布到墙上?我只是看不出我在这里做错了什么。非常感谢任何帮助。谢谢