2012-02-27 50 views
0

我有一個Facebook「着陸標籤」,也就是設置了,我已經安裝了,我想風扇後要激活另一個選項卡中點擊「像「按鈕。我搜索了互聯網,並提出了JavaScript和PHP SDK代碼的混合,但到目前爲止我還沒有真正爲我工作。Facebook的「喜歡」 - 如何讓着陸標籤重定向到另一個標籤

我想有兩個主要問題:

  1. 風扇最初訪問該網站(他們直接去登陸選項卡)後點擊「Like」按鈕,我想的iframe重定向到我創建的其他標籤。我嘗試了一個簡單的JavaScript重定向(windows.location = "URL"),並將其更改爲我想要的網址,但不在Facebook的iframe中 - 顯然它也不是通過單擊操作調用的。

  2. 如果我可以得到上述工作,接下來的問題是,一旦類似的按鈕被點擊,我想第二個標籤始終是用戶的默認值....現在用戶點擊「喜歡」它會指向牆上的頁面,當訪問者返回頁面時,它會再次顯示牆上的頁面。如果我遇到問題#1與重定向一起工作,那麼它總是默認使用第二個選項卡,或者當他們重新訪問該頁面時它仍然會將人員發送到牆上?

這是我找到的一些代碼。 JavaScript SDK和PHP SDK。我哪裏錯了?

FB.Event.subscribe('edge.create', 
    function(response) { 
     location.href = 'URLofSecondtab'; 
    } 
); 

上面的代碼是什麼,我已被告知是就像在JavaScript Facebook的事件處理程序。

<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> 

我已經找到了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代碼)?

回答

0

我認爲你的問題可以用這個來解決:

How to check if a user likes my Facebook Page or URL using Facebook's API

在該網頁上,他對傑森Siffring的回答驗證碼:

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!"; 
    } 
    } 

而是那些「回聲的,你可以呼應「window.document.location.replace(‘地方’)」

0

用戶後喜歡的頁面將刷新,所以在這一點上,你所能我們你e $ PAGE_ID變種來檢測用戶是否喜歡過的分頁,然後重定向iframe的parnt,在$ PAGE_ID的值將是1,所以在您的文檔的身體,你可以這樣做:

<? if($page_id){ ?> 
<script>window.top.location.href = "http://www.facebook.com/FANPAGE_USERNAME?sk=app_APPID";</script> 
<? } ?> 
0

着陸標籤將與時間表被禁止的網頁,在3月30日

編輯:那是,如果你talinkg約約扇頁,如果不是請不要介意。

1

如果您正在使用Facebook的頁面選項卡,然後參數會像以下(PHP):

$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 

更多信息:https://developers.facebook.com/docs/appsonfacebook/pagetabs/ 滾動至年底,並閱讀本段=>與Facebook的API

整合