安全浏览不会为Facebook页面上的粉丝/非粉丝显示不同的内容

时间:2011-09-30 10:33:41

标签: php facebook facebook-like

我在我的Facebook页面上使用以下代码来检查用户是FAN还是不风扇。在此之后,用户获得不同的内容。它工作正常,但如果我在Facebook中使用安全浏览,我总会看到:“你还不喜欢这个页面。”

我正在使用我的webhoster中的SSL代理。您是否知道为什么它在安全浏览时不起作用?

<?php
require_once 'facebook-php-sdk/src/facebook.php';

// Create our Application instance.
$facebook = new Facebook(array(
  'appId' => 'X',
  'secret' => 'X',
  'cookie' => true,
));

$signed_request = $facebook->getSignedRequest();
$like_status = $signed_request["page"]["liked"];
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="https://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>zukundo</title>
<link rel="stylesheet" href="css/blueprint/screen.css" type="text/css" media="screen, projection">
</head>

<body>
<?php 
if ($like_status) {
    echo "You like this page.";
} else {
    echo "You like this page not yet.";
  }
?>

</body>
</html>

1 个答案:

答案 0 :(得分:0)

我假设你的应用程序是一个标签应用程序,而不是画布应用程序。

以下是它的工作原理:

  • Facebook页面将在iframe中加载您的应用程序,其中POST参数“signed_request”包含加密的JSON对象,该对象使用您的应用密钥进行解密。
  • 此JSON对象包含当前用户是否为此页面的粉丝的信息。

如果您正在使用SSL代理,则此代理可能正在接收POST参数,但之后不会将其传播到您的应用程序。

在这种情况下,您的应用将无法从Facebook收到任何信息,因此您无法知道用户是否是粉丝(至少,直到他授予您许可权访问他的数据,所以你可以使用API​​检查

要解决此问题,您需要为您的域购买并安装SSL证书。 Godaddy.com似乎是最便宜的报价。