我创建了一个Facebook粉丝页面,作为粉丝门/门。当用户点击“赞”按钮时,页面会重定向到墙上。我想覆盖此行为并将页面重定向回到扇形门的喜欢版本。该应用是一个iFrame页面标签应用,使用PHP签名的请求来确定喜欢/未通过状态。
这方面的一个例子是http://www.facebook.com/1800flowers 如果您喜欢该页面,则会将您重定向到http://www.facebook.com/1800flowers?sk=app_116748578401618
所以我的搜索功能找到了一段本来可以解决这个问题的JavaScript:
<script type="text/javascript">
if (top != self) top.window.location = 'linkgoeshere';
</script>
我已经尝试将这个JavaScript块放在已经喜欢和不喜欢的页面部分。无论哪种方式,它都会创建一个重定向循环,页面会不断刷新。
如果这个代码是答案,它应该放在哪里,应该用“linkgoeshere”代替什么?有可能我一直在使用错误的链接。
如果这不是答案,还有替代方案吗?
答案 0 :(得分:2)
这是facebook上的一个错误,在此描述 - https://developers.facebook.com/bugs/110015112440103
有一个临时修复是很棒的,但由于Like按钮的代码超出了页面选项卡可访问的内容,因此我无法成像解决方案的外观,不能删除地址您的页面使其不是“地方”,这似乎是唯一受影响的页面。
答案 1 :(得分:1)
您不需要任何JavaScript。
确保在“管理权限”部分的“管理权限”部分中将“默认登陆标签”设置为您的粉丝门。
答案 2 :(得分:1)
过去几天我一直有这个问题,但今天我找到了解决方案。您怀疑这是由页面上的新推荐对话框引起的。此框仅出现在PLACES的页面上。如果您有一个分配给您网页的地址,那么请将其删除,并且您的fangate会在喜欢时重新加载到窗口中,而不是重定向到wallpage。
答案 3 :(得分:0)
这是我使用的解决方案。另外,请确保如上所示设置默认着陆标签。您将需要下载最新的facebook sdk for php,并在下面的$ loginNextPage中替换您的应用程序ID,应用程序密码和粉丝页面的路径。
请注意,您可以在两个位置添加自己的HTML或包含应为相应受众群体提供的页面内容。
此外,无论您将默认选项卡设置为默认选项卡,默认情况下,返回喜欢您页面的用户始终会获得墙。因此,如果他们离开并回来,他们就会得到隔离墙。
<?php
require 'facebook.php';
$app_id = "YOUR APP ID";
$app_secret = "YOUR APP SECRET";
$loginNextPage = 'YOUR FAN PAGE URL'.'?sk=app_'.$app_id;
$facebook = new Facebook(array(
'appId' => $app_id,
'secret' => $app_secret,
'cookie' => true
));
$signed_request = $facebook->getSignedRequest();
$page_id = $signed_request["page"]["id"];
$like_status = $signed_request["page"]["liked"];
if ($like_status) {
// FOR FANS
$session = $facebook->getSession();
$loginUrl = $facebook->getLoginUrl(
array(
'canvas' => 1,
'fbconnect' => 0,
'next' => $loginNextPage,
'req_perms' => 'publish_stream,photo_upload,user_photos,user_photo_video_tags'
)
);
$fbme = null;
if (!$session) {
echo "<script type='text/javascript'>top.location.href = '$loginUrl';</script>";
exit;
}
else {
try {
$access_token = $facebook->getAccessToken();
$fbme = $facebook->api('/me');
$user = $facebook->getUser();
$url = "https://graph.facebook.com/".$user;
$info = file_get_contents($url);
$info = json_decode($info);
$vars = "id=$user&first_name=$info->first_name&last_name=$info->last_name&access_token=$access_token&pathToServer=$pathToServer&appName=$appName";
} catch (FacebookApiException $e) {
echo "<script type='text/javascript'>top.location.href = '$loginUrl';</script>";
exit;
}
// Begin Like Gated Content.
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml">
<head>
</head>
<body>
<h1>You Have Liked The Page</h1>
</body>
</html>
<?
}
}
else {
// FOR NON FANS
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml">
<head>
</head>
<body>
<h1>Click Like To View Content</h1>
</body>
</html>
<?
}
?>