2010-12-20 86 views
5

我将我的地址簿与facebook同步,现在可以通过我的地址簿访问我的Facebook个人资料。 我想读取从另一个应用程序连接到该帐户的Facebook数据并获取同步用户的Facebook ID。如何通过ContactsContracts API从用户获取Facebook ID?

我无法在ContactContracts.Data表中找到包含与脸书相关的内容的mimetype或数据字段。 anybode是否成功完成这项工作?

看起来,Facebook以某种方式限制了这些数据的权限。这是如何完成的,我需要哪些权限才能访问在地址簿中同步的Facebook联系人信息?

+0

看来,Facebook限制了这些数据的权限。 – Janusz 2011-01-19 16:14:59

回答

0

看来这是不可能的官方API,直到现在,因为这是由谷歌为facebook应用制作的exception。我希望Facebook在其下一个版本中符合官方的android API。

3

如果用户在他们的联系人中有这些信息,那么他们也是在Facebook上与那个人的朋友。只需使用图形api并获取朋友列表,并使用所选联系人姓名对其进行筛选,或者让用户从由facebook api查询的返回名称构成的列表视图中进行选择。

try { 
    JSONObject response = Util.parseJson(facebook.request(
    "/me/friends", new Bundle(), "GET")); 

    JSONArray jArray = response.getJSONArray("data"); 

    for (int i = 0; i < jArray.length(); i++) { 
     JSONObject json_data = jArray.getJSONObject(i); 
     tempMap = new HashMap<String, Object>(); 
     tempMap.put("friend", json_data.getString("name")); 
     tempMap.put("id", json_data.getString("id")); 
     friendlist.add(tempMap); 
    } 
} catch (MalformedURLException e) { 
    e.printStackTrace(); 
} catch (JSONException e) { 
    e.printStackTrace(); 
} catch (IOException e) { 
    e.printStackTrace(); 
} catch (FacebookError e) { 
    e.printStackTrace(); 
} 
+0

当然,这是可能的,但更多的工作,然后只是看看联系人的API。 facebook可以在地址簿中更好地与用户合并,因为它可以像访问他们的电子邮件地址一样访问我的朋友的私人数据。 – Janusz 2011-01-20 15:05:26

+0

在你的问题中,你说这个用户需要facebook信息...你可以传回id并以JSON格式获取所有信息并进入“数据”。也许你可以更清楚,你正在寻找哪些作品。如果你只想要电子邮件,还有更好的方法。 – trgraglia 2011-01-23 14:41:07

+0

我想访问属于我的地址簿中的用户的Facebook ID。而且由于Facebook已经在我的facebook上合并了地址簿条目和朋友,我想通过联系人API而不是facebook图API – Janusz 2011-01-24 08:35:41

0

你也可以考虑通过gigya.com提供的API和android SDK(我曾经直到最近工作)工作。

相关问题