使默认登陆选项卡加载760px宽的应用程序

时间:2011-09-24 22:29:37

标签: php facebook-like

是否可以设置粉丝页面如下工作?

  1. 用户登陆我的客户粉丝专页
  2. 看到“像我一样”的图片
  3. 用户喜欢这个页面
  4. 然后将用户带到760像素宽的应用程序
  5. 我正在努力的两个部分是:

    1. 创建单独的粉丝和无粉丝登录页面
    2. 喜欢的时候,加载一个760像素宽的应用
    3. 通过查看用户是否已经喜欢我的应用,我是否可以使用PHP或Javascript从我的应用中控制喜欢/不喜欢的图形? 如何强制喜欢的页面加载760px宽的应用程序?

1 个答案:

答案 0 :(得分: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;