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

Posted

技术标签:

【中文标题】如何通过 ContactsContracts API 从用户那里获取 facebook id?【英文标题】:How to get the facebook id from a user through the ContactsContracts API? 【发布时间】:2011-05-28 04:57:30 【问题描述】:

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

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

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

【问题讨论】:

好像facebook限制了这个数据的权限。 【参考方案1】:

如果用户的联系人中有该信息,那么他们也是该人在 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();

【讨论】:

当然这是可能的,但工作量要大得多,然后只需查看联系人 api。并且 facebook 可以更好地与地址簿中的用户合并,因为它可以访问我朋友的私人数据,例如他们的电子邮件地址。 在您的问题中,您说想要该用户的 facebook 信息...您可以将 id 传回并以 JSON 格式获取所有信息并进入“数据”。也许您可以更清楚地了解您正在寻找哪些作品。如果您只想要电子邮件,还有更好的方法。 我想访问我的通讯录中属于某个用户的 facebook id。由于 facebook 已经为我合并了 facebook 上的地址簿条目和朋友,我想通过联系人 API 而不是 facebook graph API【参考方案2】:

您还可以考虑使用 gigya.com 提供的 API 和 android SDK(我最近一直在那里工作)。

【讨论】:

【参考方案3】:

似乎直到现在这对官方 API 来说是不可能的,因为这个 exception 是由 google 为 facebook 应用程序制作的。我希望 facebook 在其下一个版本中符合官方的 android API。

【讨论】:

以上是关于如何通过 ContactsContracts API 从用户那里获取 facebook id?的主要内容,如果未能解决你的问题,请参考以下文章

什么是AP,胖瘦AP如何区分?

什么是AP,胖瘦AP如何区分?

无线AP如何区分来宾(流动)用户和正常用户?

华为4030dn刷成胖ap后怎么当路由设置?

思科AP修改AP位置描述通过WLC命令方式

如何以编程方式扫描、查找和连接到开放的 wifi AP?