我想获得访问的公共的有关在Facebook上的任何用户信息。 基本上,这意味着只有用户的照片和全名,仅此而已。 这就是你得到的信息,当你打开一个页面没有被登录,像这样的:

http://www.facebook.com/jurgenappelo

然而,当我尝试从代码做到这一点,脸谱返回该消息:

<强> “您使用不兼容的web浏览器。”

我试图模仿Firefox浏览器,但似乎并没有工作。 难道我做错了什么?或者是Facebook的使用其他技术来阻止这个?

        var requestString = "http://www.facebook.com/jurgenappelo";
        var request = (HttpWebRequest)WebRequest.Create(requestString);
        request.Headers.Add("HTTP_USER_AGENT", "Gecko/20050511 Firefox/1.0.4"); 
        try
        {
            HttpWebResponse response =(HttpWebResponse)request.GetResponse();
            if (response != null)
            {
                if (response.StatusCode == HttpStatusCode.OK)
                {
                    Stream stream = response.GetResponseStream();
                    using (StreamReader reader = new StreamReader(stream))
                    {
                        var html = reader.ReadToEnd();
                    }
                }
            response.Close();
            }
        }
        catch { }
有帮助吗?

解决方案

根据该:

在.NET设置HTTP头:此标头必须使用合适的属性进行修饰

你应该尝试改变:

request.Headers.Add("HTTP_USER_AGENT", "Gecko/20050511 Firefox/1.0.4"); 

为:

request.UserAgent = "Gecko/20050511 Firefox/1.0.4";

其他提示

  

我是不是做错了什么?

您违反了Facebook的条款和条件:

  

您不会收集用户的信息,或者以其他方式访问Facebook,使用自动装置(如收获机器人,机器人,蜘蛛,或刮刀)未经我们许可。

- http://www.facebook.com/terms.php?ref=pf

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top