首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Facebook Fan Gate -显示“揭示”内容

Facebook Fan Gate -显示“揭示”内容
EN

Stack Overflow用户
提问于 2011-10-06 07:36:06
回答 1查看 4.9K关注 0票数 1

我正试着给我的页面添加一个粉丝门,我可以让"pre- like“内容显示出来,但在我喜欢这个页面之后-- post-like内容就不会显示了。无论我是否喜欢这个页面,它都会显示相同的pre-like内容。

这是我在index.php文件中使用的代码...

代码语言:javascript
运行
复制
 require 'facebook.php';
 $app_id = "myappid";
 $app_secret = "myappsecret";
 $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"];

 // If a fan is on your page
 if ($like_status) {
 $a = file_get_contents("dolike.html");
 echo ($a);
 } else {
 // If a non-fan is on your page
 $a = file_get_contents("dontlike.html");
 echo ($a);
 }

 ?>

我看过半打的例子,它们本质上都是一样的(只有几个变体,有些在html上使用图片,有些在同一个页面上使用html ),但它们都没有显示出类似post的内容。

我从代码中删除了应用程序id和密钥,尽管我确实有并一直在使用它们。

任何帮助都是很棒的。

EN

回答 1

Stack Overflow用户

发布于 2011-10-06 15:48:37

代码语言:javascript
运行
复制
<?php
 require 'facebook.php';
 $app_id = "myappid";
 $app_secret = "myappsecret";
 $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"];

 // If a fan is on your page
 if ($like_status == 1) {
 $a = file_get_contents("dolike.html");
 echo ($a);
 } else {
 // If a non-fan is on your page
 $a = file_get_contents("dontlike.html");
 echo ($a);
 }

 ?>

试试这个:)

编辑:

或者尝试这个没有FB PHP-SDK的版本,这是我使用的解决方案,所以我不需要用户整个PHP-SDK

代码语言:javascript
运行
复制
<?php
  $app_secret="xxxxxxxxxxxxx";
  $data = parse_signed_request($_REQUEST['signed_request'], $app_secret);
  $page_data=$data['page'];

  function parse_signed_request($signed_request, $secret) {
    list($encoded_sig, $payload) = explode('.', $signed_request, 2);

    // decode the data
    $sig = base64_url_decode($encoded_sig);
    $data = json_decode(base64_url_decode($payload), true);

    if (strtoupper($data['algorithm']) !== 'HMAC-SHA256') {
      error_log('Unknown algorithm. Expected HMAC-SHA256');
      return null;
    }
    // check sig
    $expected_sig = hash_hmac('sha256', $payload, $secret, $raw = true);
    if ($sig !== $expected_sig) {
      error_log('Bad Signed JSON signature!');
      return null;
    }

    return $data;
  }
  function base64_url_decode($input) {
    return base64_decode(strtr($input, '-_', '+/'));
  }

  if($page_data['liked'] == "1"){

    // Fan Content

  }else{

    // No-Fan Content

  }
?>
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7668976

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档