Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/437.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript “脸谱网”;例如如何使登录选项卡重定向到另一个选项卡_Javascript_Facebook_Facebook Graph Api_Facebook Like - Fatal编程技术网

Javascript “脸谱网”;例如如何使登录选项卡重定向到另一个选项卡

Javascript “脸谱网”;例如如何使登录选项卡重定向到另一个选项卡,javascript,facebook,facebook-graph-api,facebook-like,Javascript,Facebook,Facebook Graph Api,Facebook Like,我有一个Facebook的“登陆标签”,这是设置,我已经安装了另一个标签,我想被激活后,球迷点击“喜欢”按钮。我搜索了互联网,找到了JavaScript和PHPSDK的混合代码,但到目前为止,没有任何东西真正适合我 我想主要有两个问题: 在粉丝最初访问站点(他们直接进入登录选项卡)并单击“like”按钮后,我希望iframe重定向到我创建的另一个选项卡。我尝试了一个简单的JavaScript重定向(windows.location=“URL”),并将其更改为我想要的URL,但不在Facebook

我有一个Facebook的“登陆标签”,这是设置,我已经安装了另一个标签,我想被激活后,球迷点击“喜欢”按钮。我搜索了互联网,找到了JavaScript和PHPSDK的混合代码,但到目前为止,没有任何东西真正适合我

我想主要有两个问题:

  • 在粉丝最初访问站点(他们直接进入登录选项卡)并单击“like”按钮后,我希望iframe重定向到我创建的另一个选项卡。我尝试了一个简单的JavaScript重定向(
    windows.location=“URL”
    ),并将其更改为我想要的URL,但不在Facebook iframe中-显然,类似单击的操作也没有调用它

  • 如果我可以让上面的工作,下一个问题是,一旦点击like按钮,我希望第二个选项卡始终是用户的默认选项卡。。。。现在,在用户点击“喜欢”后,它会指向墙页,当访问者返回到该页时,它就是墙页。如果我遇到问题#1使用重定向时,它将始终默认为第二个选项卡,还是在人们重新访问页面时,它仍会将他们发送到墙上

  • 这是我找到的一些代码。JavaScript SDK和PHP SDK。我哪里做错了

    FB.Event.subscribe('edge.create',
        function(response) {
            location.href = 'URLofSecondtab';
        }
    );
    
    上面的代码是我被告知的Facebook事件处理程序,类似于JavaScript

    <div id="fb-root"></div>
    
    <script type="text/javascript">
        window.fbAsyncInit = function() {
            FB.init({appId: 'idOfLandingTab', status: true, cookie: true, xfbml: true});
            //FB.Canvas.setSize({ width: 520, height: 1500 });
            FB.Event.subscribe('edge.create',
                function(response) {
                    alert('like!');
                    // put redirect code here eg
                    window.location = "URLofSecondtab";
                }
            );
        };
    
        //Load the SDK asynchronously
        (function() {
            var e = document.createElement('script'); e.async = true;
            e.src = document.location.protocol +
              '//connect.facebook.net/en_US/all.js';
            document.getElementById('fb-root').appendChild(e);
        }());
    </script>
    
    
    window.fbAsyninit=函数(){
    init({appId:'idOfLandingTab',状态:true,cookie:true,xfbml:true});
    //FB.Canvas.setSize({宽度:520,高度:1500});
    FB.Event.subscribe('edge.create',
    功能(响应){
    警惕(‘喜欢’);
    //把重定向代码放在这里
    window.location=“URLofSecondtab”;
    }
    );
    };
    //异步加载SDK
    (功能(){
    var e=document.createElement('script');e.async=true;
    e、 src=document.location.protocol+
    “//connect.facebook.net/en_US/all.js”;
    document.getElementById('fb-root').appendChild(e);
    }());
    
    我已找到PHP SDK,但无法实现:

    <?php
        // Sample PHP code to customize the a Facebook Fan Page iFrame Application
        // Refer to http://www.hyperarts.com/blog/customizing-facebook-iframe-application-    signed_request_reveal_tab
    
        require 'facebook.php';
    
        $app_id = "APP_ID_HERE"; //which app id? the landing tab or the second tab that I want     //redirected?
        $app_secret = "APP_SECRET_HERE";
        $facebook = new Facebook(array(
            'appId' => $app_id,
            'secret' => $app_secret,
            'cookie' => true
        ));
    
    
        $signed_request = $facebook->getSignedRequest();
    
        $page_id = $signed_request["page"]["id"];
        $page_admin = $signed_request["page"]["admin"];
        $like_status = $signed_request["page"]["liked"];
        $country = $signed_request["user"]["country"];
        $locale = $signed_request["user"]["locale"];
    
        echo "<br>page id = $page_id";
        echo "<br>page admin = $page_admin";
        echo "<br>like status = $like_status";
        echo "<br>country = $country";
        echo "<br>locale = $locale";
    ?>
    
    
    

    哪个位置需要哪个选项卡URL和应用程序id?什么样的代码(JavaScript或PHP代码)?

    我认为您的问题可以通过以下方式解决:

    在那一页上,Jason Siffrin的答案上有这样的代码:

    if($signed_request = parsePageSignedRequest()) {
        if($signed_request->page->liked) {
          echo "This content is for Fans only!";
        } else {
          echo "Please click on the Like button to view this tab!";
        }
      }
    

    在用户喜欢该页面后,它将刷新,因此此时您可以使用$page\u id变量检测用户是否喜欢该页面,然后重定向iframe的参数,$page\u id的值将为1,因此,在文档正文中,您可以执行以下操作:

    <? if($page_id){ ?>
    <script>window.top.location.href = "http://www.facebook.com/FANPAGE_USERNAME?sk=app_APPID";</script>
    <? } ?>
    
    
    window.top.location.href=”http://www.facebook.com/FANPAGE_USERNAME?sk=app_APPID";
    
    登录选项卡将在3月30日禁用,页面的时间线为


    编辑:即如果您是Talink关于粉丝页面,如果不是nevermind。

    如果您使用的是facebook页面选项卡,则参数的工作方式如下(PHP):

    更多信息: 滚动至结尾,阅读此段落=>与Facebook API集成

    $signed_request=$_REQUEST["signed_request"];
    list($encoded_sig, $payload) = explode('.', $signed_request, 2); 
    $data = json_decode(base64_decode(strtr($payload, '-_', '+/')), true);
    //to get page id use this => $data["page"]["id"]
    //to get liked or unlike page => $data["page"]["liked"]  = this will return 1 if 
    //liked else blank