如何以编程方式检测用户代理是否阻止访问Facebook

Max*_*lli 3 javascript c# facebook facebook-c#-sdk

我们正在开发一个使用FB Graph api服务器端,FB Javascript SDK和社交插件的Web应用程序(http://beta.dammela.it).

与FB的集成很深,我们希望检测访问我们网站的用户何时在代理后面阻止所有流向Facebook属性的流量(如在某些工作场所).

如果我们能够检测到他被阻止,我们可以给他/她一些提示,帮助,解释和一些替代方法来登录和与应用程序交互.

但我无法弄清楚如何做到这一点.

我猜,但我只是猜测,有一种方法可以检测用户访问Facebook是否被阻止检查Javascript SDK中的内容,但我无法找到什么和/或如何.

任何的想法?

Man*_*aye 7

解释:
我们尝试下载facebook favicon.如果它抛出错误,那么我们知道facebook被阻止了.
注意:当代理阻止URL时,它会将4xx范围内的错误返回给客户端.

码:

var img = new Image();
img.onerror = function () {
 alert("It seems Facebook is blocked!"); 
}
img.src = "http://facebook.com/favicon.ico";
Run Code Online (Sandbox Code Playgroud)

你可以在这里尝试一下.

更新:用客户端JavaScript替换服务器端C#代码.