检测用户是否可以查看facebook Like按钮

时间:2012-09-20 10:57:12

标签: javascript facebook

如您所知,Facebook已在许多国家/地区进行过滤,如果我们在页面中添加“赞”按钮,则会在其互联网提供商处显示“拒绝访问”消息,而不是“赞”按钮。所以问题是,我可以检测用户是否可以查看Facebook吗?所以,如果用户可以访问Facebook并且未进行过滤,我只会显示“赞”按钮。

由于

4 个答案:

答案 0 :(得分:3)

通过加载www.facebook.com来测试是否可以访问域favicon.ico,如果是,请显示iframe:

<iframe src="http://www.facebook.com/plugins/like.php" id="fbfm" style="display:none">
</iframe>

<script>
var fbicon = new Image();
fbicon.onload = function() {
  document.getElementById("fbfm").style.display = "";
};
fbicon.src = "http://www.facebook.com/favicon.ico?" + Math.random();
</script>

答案 1 :(得分:1)

我猜你可以在if按钮上设置一个非常小的宽度和高度,对于按钮本身就足够了,并且希望任何“ACCESS DENIED”消息都有足够的填充在iframe的视口中不可见! :)

替代方案可能是“ping”Facebook,就像发出一个AJAX请求并看看响应是什么。 希望来自ISP的任何阻止响应都会包含HTTP 403状态代码,或者其他合理的东西,但如果不是,您必须抓取返回HTML并尝试自己确定是否看到Facebook或错误页面,然后决定是否渲染类似按钮。

答案 2 :(得分:0)

使用Facebook javascript库:http://developers.facebook.com/docs/reference/javascript/

并使用FB.getLoginStatus(...)函数来检查并确定您希望应用程序执行的操作。如果他们已登录或未登录(connectednot_authorized),那么他们会登录到Facebook并显示您喜欢的按钮。如果状态为unknown,他们尚未登录,但可以看到Facebook。

如果Facebook脚本没有加载或返回任何值,那么Facebook可能会被阻止,您不想显示您喜欢的按钮。

注意:您还需要使用Facebook创建一个应用ID,以便将您的javascript链接到。

答案 3 :(得分:0)

我的建议是使用ShareThisAddThis等服务。它们有可能在您的国家/地区被阻止(您可以在使用和使用VPN之前对其进行测试)并且它们为您提供了一个优势,即您的用户可以与其他可用的门户网站上的朋友共享您的网站。它们。

对于其他人来说,知道这些服务是否可以在Facebook被阻止的国家/地区使用肯定会很有趣,因为很多人无法自行测试。