获取Facebook个人资料页面上的用户信息

时间:2012-04-15 16:15:03

标签: c# .net facebook facebook-graph-api screen-scraping

我想创建一个非常基本的C#应用​​程序,可以获取Facebook用户配置文件的公开可用信息。我已经阅读了几页Graph API,但是有一个问题。在这里,您可以看到包含公共所有信息的用户个人资料:

http://tr-tr.facebook.com/people/A-Altan-Yurt/100002356385895

但是,我无法使用带有此链接的Graph API获取所有这些信息:

https://graph.facebook.com/100002356385895

我尝试抓取页面,但返回的文档不包含任何有用的信息。由于所有这些信息都是公开的,我认为不应该存在访问限制。我在这里做错了什么?

1 个答案:

答案 0 :(得分:1)

是的,即使公共可访问的数据也不能只在facebook界面之外获取。

为了获取数据,您需要一个有效的访问令牌,例如,如果您尝试使用same user's feed的网址:

{
   "error": {
      "message": "An access token is required to request this resource.",
      "type": "OAuthException",
      "code": 104
   }
}

您可以试用此same url with the Graph API Explorer,在您授权此应用后,它会有一个访问令牌,您将获得该用户的公共Feed。

在那里使用的访问令牌(在API资源管理器中)是一个应用访问令牌,这可能是最容易获得的令牌,这里是关于Authenticating as an App的文档。 获得访问令牌后,您可以开始查询图表API并获取公共数据。

您可以使用其他访问令牌类型执行此操作,例如用户令牌。


修改

即使Facebook上的用户公开了某些内容,他们也不会公开申请,您需要申请正确的权限才能说教育(user_education_history)。

您可以在User object的文档中准确查看每个字段所需的权限,在字段表中,第3列标题为权限和那里你会看到每个领域你需要什么。