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

标签 c# javascript facebook facebook-c#-sdk

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

与 FB 的集成很深,我们希望检测访问我们网站的用户何时使用代理,该代理会阻止所有访问 Facebook Assets 的流量(例如在某些工作场所)。

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

但我不知道该怎么做。

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

有什么想法吗?

最佳答案

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

代码:

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

你可以试试这个 here .

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

关于c# - 如何以编程方式检测用户代理是否阻止访问 Facebook,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5790343/

相关文章:

javascript - 使用ajax获取不需要的字符串

javascript - ReactJS defaultProps 空函数声明

facebook - 如何使用 Graph API 在 Facebook POST.to 属性中标记用户/页面?不涉及 PHP 或 Javascript,仅纯 HTTP POST 请求

android - Facebook key 哈希与第二次运行时任何存储的 key 哈希不匹配

facebook - FQL 中的 "show tables"或 "describe"?

c# - 在 phpmyadmin : "Access denied for user ' root' @'name_of_computer' "from c# applications 中重新创建用户后

c# - 关于构建操作的澄清

c# - Newtonsoft 11.0.0.0 无法在 Azure Function App 2.0 上加载

c# - WPF:带 Canvas 的图像

javascript - 将 Javascript 对象保存到 Chrome.Storage