单击“喜欢”时如何阻止扇形门/类似门重定向到墙壁

时间:2011-09-21 17:48:49

标签: javascript php facebook facebook-like

我创建了一个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”代替什么?有可能我一直在使用错误的链接。

如果这不是答案,还有替代方案吗?

4 个答案:

答案 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>
    <?
    }
    ?>