我想创建一个非常基本的C#应用程序,可以获取Facebook用户配置文件的公开可用信息。我已经阅读了几页Graph API,但是有一个问题。在这里,您可以看到包含公共所有信息的用户个人资料:
http://tr-tr.facebook.com/people/A-Altan-Yurt/100002356385895
但是,我无法使用带有此链接的Graph API获取所有这些信息:
https://graph.facebook.com/100002356385895
我尝试抓取页面,但返回的文档不包含任何有用的信息。由于所有这些信息都是公开的,我认为不应该存在访问限制。我在这里做错了什么?
答案 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列标题为权限和那里你会看到每个领域你需要什么。