3

如何使用 facebook API 查找 facebook url 是社区 url 或个人资料 url

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

http://www.facebook.com/BryantAthletics

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

4

3 回答 3

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 参数很好地表明此特定用户名与页面相关。用户不能为自己选择一个类别...

于 2012-10-16T07:27:23.590 回答
2

正如@Lix 建议的那样,您可以执行以下操作:

请求: https ://graph.facebook.com/BryantAthletics?fields=gender

HTTP 响应: 400 错误请求

JSON响应:

{
   "error": {
      "message": "(#100) Unknown fields: gender.",
      "type": "OAuthException",
      "code": 100
   }
}

这告诉我们它不是用户对象。但是它可能是一个组或一个页面。所以您需要使用组或页面唯一的属性发出另一个请求。根据您提出请求的方式,您可以决定相应地处理结果。

考虑,

请求: https ://graph.facebook.com/adelphi.panthers?fields=gender

HTTP 响应: 200 OK

JSON响应:

{
   "gender": "female",
   "id": "1360823630"
}

现在这告诉我们性别属性存在于这个 Facebook 对象中,所以它肯定是一个用户。

我假设您正在使用 JQuery 来捕获和解析响应。然后,您将检查 JSON 变量中的错误属性以确定对象类型。

于 2012-10-16T07:46:58.743 回答
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());
于 2013-11-27T10:46:01.957 回答