首页 > web前端 > js教程 > 如何使用 JavaScript 可靠地确定 Facebook 用户是否喜欢我的页面?

如何使用 JavaScript 可靠地确定 Facebook 用户是否喜欢我的页面?

Susan Sarandon
发布: 2024-11-25 09:47:07
原创
329 人浏览过

How Can I Reliably Determine if a Facebook User Has Liked My Page Using JavaScript?

使用 JavaScript API 确定 Facebook 页面亲和性

在 iFrame 应用程序的上下文中,验证用户是否“喜欢”某个页面的任务可以遇到特定的 Facebook 页面。然而,在尝试实现此功能时遇到不一致的情况并不少见。

考虑以下代码片段:

FB.api({
    method:     "pages.isFan",
    page_id:        my_page_id,
},  function(response) {
        console.log(response);
        if(response){
            alert('You Likey');
        } else {
            alert('You not Likey :(');
        }
    }
);
登录后复制

执行此代码时,它甚至会产生令人费解的“False”结果尽管相关用户确实“喜欢”了相关页面。这种差异背后的罪魁祸首在于需要尚未解决的扩展许可。

使用签名请求的替代方法

为了规避此问题并可靠地确定根据用户的“喜欢”状态,可以采用利用签名请求机制的替代方法。通过在 Facebook 中启用“OAuth 2.0 for Canvas”高级选项,您可以在每个选项卡应用程序请求中检索签名请求,其中包含有关用户的重要信息,包括他们的“喜欢”状态:

function parsePageSignedRequest() {
    if (isset($_REQUEST['signed_request'])) {
      $encoded_sig = null;
      $payload = null;
      list($encoded_sig, $payload) = explode('.', $_REQUEST['signed_request'], 2);
      $sig = base64_decode(strtr($encoded_sig, '-_', '+/'));
      $data = json_decode(base64_decode(strtr($payload, '-_', '+/'), true));
      return $data;
    }
    return false;
  }
  if($signed_request = parsePageSignedRequest()) {
    if($signed_request->page->liked) {
      echo "This content is for Fans only!";
    } else {
      echo "Please click on the Like button to view this tab!";
    }
  }
登录后复制

This解决方案提取签名的请求,对其进行解码,并检查解析的 JSON 对象的“喜欢”属性,以准确确定用户对 Facebook 页面的“喜欢”状态。

以上是如何使用 JavaScript 可靠地确定 Facebook 用户是否喜欢我的页面?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板