2011-09-24 39 views
3

是否可以將粉絲頁面設置爲如下工作?我的客戶的粉絲專頁 使默認登陸標籤加載一個760像素寬的應用程序

    1. 用戶登陸看到了「像我這樣的」圖形
    2. 用戶喜歡的頁面
    3. 然後用戶帶到一個760px寬的應用

    兩個我正在努力的部分是:

    1. 創建單獨的風扇和無風扇降落
    2. 頁面時很喜歡,加載了一個760px寬的應用

    難道我通過看,如果用戶已經喜歡我的應用程序的控制來自使用PHP或Javascript我的應用程序等等/ nonlike圖形? 如何強制喜歡的頁面加載760像素的應用程序?

  • 回答

    0

    您可以捕獲像按鈕事件。

    Facebook elements events

    例子:

    <script> 
        window.fbAsyncInit = function() { 
         FB.init({appId: '127654160646013', status: true, cookie: true, xfbml: true}); 
         FB.Canvas.setSize({ width: 520, height: 742 }); 
         FB.Event.subscribe('edge.create', function(response) { 
          window.parent.location = ADDRESS; 
         }); 
        }; 
        (function() { 
         var e = document.createElement('script'); e.async = true; 
         e.src = document.location.protocol + '//connect.facebook.net/lt_LT/all.js'; 
         document.getElementById('fb-root').appendChild(e); 
        })(); 
    </script> 
    

    還需要獲得用戶的風扇狀態。這裏有一個解決方案:

    <? 
    define('FACEBOOK_APP_ID', 'xxx'); 
    define('FACEBOOK_APP_SECRET', 'xxx'); 
    
    $is_fan = false; 
    if (!empty($_REQUEST['signed_request'])) { 
    
        list($encoded_sig, $payload) = explode('.', $_REQUEST['signed_request'], 2); 
    
        $sig = base64_decode(strtr($encoded_sig, '-_', '+/')); 
        $data = json_decode(base64_decode(strtr($payload, '-_', '+/')), true); 
    
        $expected_sig = hash_hmac('sha256', $payload, FACEBOOK_APP_SECRET, true); 
    
        if ($sig == $expected_sig) { 
    
         if (!empty($data['page']['liked'])) { 
          $is_fan = true; 
         } 
        } 
    } 
    ?> 
    

    有你需要的一切。請記住,您只能通過javascript重定向:

    window.parent.location = ADDRESS; 
    
    +0

    該代碼看起來像是處理nonfan /粉絲頁面的一種方式?那是對的嗎?它是否也允許760個寬應用程序? – BillyMedia

    +0

    粉絲頁面不能包含寬度超過520px的iframe。你需要製作更小的粉絲頁面版本。另外,這個風扇狀態提取器僅在粉絲頁面中工作(因爲應用程序不會發送$ _REQUEST ['signed_request']) – neworld

    相關問題