Facebook社区

时间:2012-10-16 07:20:55

标签: facebook facebook-graph-api

如何使用facebook API

找到Facebook网址是社区网址或个人资料网址

例如 http://www.facebook.com/adelphi.panthers

http://www.facebook.com/BryantAthletics

哪个是个人资料网址,哪个是社区网址,如何查找?

3 个答案:

答案 0 :(得分:2)

  

您提供的链接适用于Facebook用户和Facebook页面。我将假设“社区网址”是指Facebook页面......

好的,所以我认为根据用户名(或ID)检测什么是Facebook页面以及什么是用户将非常简单。

您需要做的就是(在这些情况下),使用用户名 -

查询Graph API
https://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());