我在facebook上有一个应用程序,我只使用了pagetabs,一切都很顺利。我点击了,我允许应用程序,请求权限,我允许,但现在它回到页面并且有一个错误,它重复加载...页面无法加载因为浏览器总是重新加载它,我不知道如何解决它...
非常感谢
这是我的代码:
<?php
require_once "sdk/facebook.php";
$app_id = "MY_APPID";
$app_secret = "MY_SECRET";
$is_fan = false;
// Init facebook api.
$facebook = new Facebook(array(
'appId' => $app_id,
'secret' => $app_secret,
'cookie' => true
));
// Get and decode signed request.
$signed_request = $facebook->getSignedRequest();
if (isset($_REQUEST['signed_request'])) {
$encoded_sig = null;
$payload = null;
list($encoded_sig, $payload) = explode(
'.', $_REQUEST['signed_request'], 2
);
$sig = base64_decode(strtr($encoded_sig, '-_', '+/'));
$data = json_decode(
base64_decode(strtr($payload, '-_', '+/'), true)
);
$signed_request = $data;
}
else {
$signed_request = false;
}
// Determine if we have a fan request.
if($signed_request) {
if($signed_request->page->liked) {
$is_fan = true;
}
}
// for fans
if ($is_fan) { ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="css/style.css" rel="stylesheet" type="text/css" />
<script>
var oauth_url = 'https://www.facebook.com/dialog/oauth/';
oauth_url += '?client_id=414328901957674';
oauth_url += '&redirect_uri=' + encodeURIComponent('https://www.facebook.com/pages/null/167838393340757/?sk=app_414328901957674');
oauth_url += '&scope=user_birthday,user_likes,photo_upload,publish_stream,user_about_me,user_photos,user_hometown,user_location'
window.top.location = oauth_url;
</script>
</head>
<body background="images/fanda.jpg" style="overflow:hidden;"">
</body>
<?php }
// for non-fans
else { ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="css/style.css" rel="stylesheet" type="text/css" />
</head>
<body background="images/klikni-like.jpg" style="overflow:hidden;">
</body>
<?php } ?>
答案 0 :(得分:0)
当某人是粉丝时,您的脚本始终正在执行:
window.top.location = oauth_url;
如果有人是粉丝,这将导致页面无限重新加载。
答案 1 :(得分:0)
我找到了解决问题的方法。检查是否($ is_fan):
时更新此项$user_id = $facebook->getUser();
if ($is_fan) {
if($user_id)
{
code after authentication and page Liked
}
}
else {
<script>
var oauth_url = 'https://www.facebook.com/dialog/oauth/';
................ Next 4 lines same as the above code ..............
</script>
}