如何通过ContactsContracts API从用户获取facebook id?

时间:2010-12-20 11:11:52

标签: android facebook contactscontract

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

我在ContactContracts.Data表中找不到包含与facebook相关的内容的mimetype或数据字段。 anybode成功完成了吗?

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

3 个答案:

答案 0 :(得分: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();
}

答案 1 :(得分:0)

您还可以考虑使用gigya.com提供的API和android SDK(我过去工作到最近)。

答案 2 :(得分:0)

直到现在,由于谷歌为Facebook应用程序制作的exception,似乎无法对官方API进行此操作。我希望facebook在下一版本中符合官方Android API。