【问题标题】:Differentiate two friends with the same name from friend's list (Facebook Android)从好友列表中区分两个同名好友(Facebook Android)
【发布时间】:2015-04-09 11:18:04
【问题描述】:

我目前正在开发一个在 Android 上使用 Facebook SDK 的项目。 我设法获取了用户的朋友列表,其中包含姓名、ID 和个人资料图片,并希望将他们的个人资料图片保存在外部 sd 卡上以支持我的应用程序的离线使用。

为此,我需要为每个用户的朋友设置一个唯一名称,该名称在不同会话之间保持不变,以便使用适当的用户加载本地图片。 我尝试使用“id”字段,但每次刷新 Facebook 令牌时值都会发生变化。因此,重新加载应用程序时我无法恢复我的图片。 如果我使用名字和姓氏,并且一个用户有两个名字和姓氏相同的朋友,我会遇到一些问题来区分他们(例如:Jon_Snow.jpg 和 Jon_Snow.jpg)

我怎样才能为每个朋友获得一个唯一的用户标识,即使在刷新令牌后也保持不变?

感谢您的帮助。

【问题讨论】:

  • 你确定你得到了 User-Id 吗?因为它不应该改变
  • 您可以从用户的朋友那里获取哪些信息?我的意思是除了名字和姓氏。例如生日?
  • @BatuhanCoşkun 如果两个朋友是双胞胎怎么办哈哈:D
  • 我正在使用 this.id = jSONUser.optString("id");它与 User-Id 不同吗?我也在考虑生日日期,这几乎可以解决所有冲突,但这并不完美:) 我尝试了“user_id”,它返回一个空字符串
  • 另外,我刚刚注意到朋友的生日现在在扩展配置文件中。要使用它,我需要添加一个新权限,并让 Facebook 审查我的应用,然后才能访问生日:/

标签: android facebook facebook-friends


【解决方案1】:

edge /me/invitable_friends 不会返回朋友的 ID,它会返回在每次请求时重新生成的令牌,并且仅用于使用指定的 API 邀请朋友加入应用程序。

总而言之,你试图用这个端点做的事情是不可能的,使用/me/friends也是不可能的,因为它只会返回一个已经使用你的应用程序的朋友列表。

另外,顺便说一句,边缘是为游戏保留的,不供非游戏应用使用。

【讨论】:

  • 感谢您的回答。真的很清楚,并确认了我到目前为止所做的所有测试。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-10
  • 1970-01-01
  • 2014-07-09
  • 2017-08-06
相关资源
最近更新 更多