如何使用facebook API
找到Facebook网址是社区网址或个人资料网址例如 http://www.facebook.com/adelphi.panthers
http://www.facebook.com/BryantAthletics
哪个是个人资料网址,哪个是社区网址,如何查找?
答案 0 :(得分:2)
您提供的链接适用于Facebook用户和Facebook页面。我将假设“社区网址”是指Facebook页面......
好的,所以我认为根据用户名(或ID)检测什么是Facebook页面以及什么是用户将非常简单。
您需要做的就是(在这些情况下),使用用户名 -
查询Graph APIhttps://graph.facebook.com/adelphi.panthers
{
"id": "1360823630",
"name": "Adelphi Panthers",
"first_name": "Adelphi",
"last_name": "Panthers",
"link": "https://www.facebook.com/adelphi.panthers",
"username": "adelphi.panthers",
"gender": "female",
"locale": "en_US",
"updated_time": "2012-10-09T12:51:38+0000"
}
如您所见,此API调用返回了一个性别参数。页面不能有性别,所以我们可以假设这是一个Facebook用户。
https://graph.facebook.com/BryantAthletics
{
"name": "Bryant Athletics",
"is_published": true,
"website": "bryantbulldogs.com",
"username": "BryantAthletics",
...
"category": "School sports team",
...
}
您可以在此处看到更多信息正在返回给我们。我认为Category参数很好地表明此特定用户名与页面相关。用户无法为自己选择一个类别......
答案 1 :(得分:2)
好吧@Lix建议你可以这样做:
请求: https://graph.facebook.com/BryantAthletics?fields=gender
HTTP响应: 400错误请求
JSON响应:
{
"error": {
"message": "(#100) Unknown fields: gender.",
"type": "OAuthException",
"code": 100
}
}
这告诉我们它不是User对象。但它可能是一个组或一个页面..因此,您需要使用对组或页面唯一的属性发出另一个请求。根据您提出请求的方式,您可以决定相应地处理结果。
考虑,
请求: https://graph.facebook.com/adelphi.panthers?fields=gender
HTTP响应: 200 OK
JSON响应:
{
"gender": "female",
"id": "1360823630"
}
现在这告诉我们这个Facebook对象中存在gender属性,所以它肯定是用户。
我假设您正在使用JQuery来捕获和解析响应。然后,您将检查JSON变量中的error属性以确定对象类型。
答案 2 :(得分:0)
If you are working with java then don't pass any parameter of gender type.
it will automatically accept.
I had the same problem but now its resolved.
My working code is:
User user = client.fetchObject("username", User.class);
System.out.println("Gender: " + user.getGender());