使用 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中文网其他相关文章!