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

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

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

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

【问题讨论】:

  • 好像facebook限制了这个数据的权限。

标签: android facebook contactscontract


【解决方案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。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-08-17
      • 2019-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多