Facebook iFrame应用程序,这段代码是否正确?

时间:2011-03-14 17:14:32

标签: php facebook

我刚刚把一个快速的Facebook iFrame“fangate”应用程序拼凑在一起,你必须“喜欢”显示一个页面。

我已经看过很多在线做事方式,所以我只是想在发布应用程序之前检查一下我的方法是否安全。

..和代码......:

<?php
require 'facebook.php';

$facebook = new Facebook(array(
'appId' => "__CODE_HERE__",
'secret' => "__CODE_HERE__",
'cookie' => true
));
$signed_request = $facebook->getSignedRequest();

    if($signed_request != false){
        if($signed_request["page"]["liked"]) {
          echo "you LIKE this page now!!";
        } else {
          // User likes the fan page.. display restricted data.
          include 'index.php';
        }
    }
    else
    {
        header('LOCATION: http://www.facebook.com/');
    }

  ?>

你们觉得怎么样?这看起来非常安全,这是我遇到过的最常见的方法。你还包括其他什么吗?

欢迎所有反馈.. :)

- 康纳

2 个答案:

答案 0 :(得分:1)

我看不出有任何问题。我见过类似的解决方案。

答案 1 :(得分:1)

我不会为此加载整个PHP-SDK ,而是使用文档中的方法:

$signed_request = $_REQUEST["signed_request"];
list($encoded_sig, $payload) = explode('.', $signed_request, 2);
$data = json_decode(base64_decode(strtr($payload, '-_', '+/')), true);

if (empty($data["page"]["liked"])) {
    echo "You are not a fan!";
} else {
    echo "Welcome back fan!";
}

我写了tutorial关于此问题,并提供了一个真实世界的例子,说明了这一点。