【发布时间】:2014-08-18 13:17:03
【问题描述】:
Facebook API v2.0 引入了invitable_friends edge。
GET 请求对此边缘的响应示例如下:
{
"data": [
{
"id": "AVkgK9fLFxasdvXNbDV_gYogR6lXa9SKLnH...",
"name": "Anita Sujarit",
"picture": {
"data": {
"is_silhouette": false,
"url": "https://fbcdn-profile-a.akamaihd.net/hprofile-ak-prn2/t1.0-1/c0.0.50.50/p50x50/1470158_10201991701127909_302023572_t.jpg"
}
}
}
}
仔细查看该 ID,它不是普通的 Facebook 用户 ID。相反,它是Invite Token;此令牌作为to 参数的值传递给Requests Dialog。
在每个朋友对象上作为名为 id 的字段的值返回的邀请令牌是一个唯一的(每个用户和每个游戏)可变长度的字符串。邀请令牌会过期,并且可能会在游戏会话之间发生变化。因此,不建议缓存这些结果,或者尝试将它们分配给给定的人。
friends edge 现在只返回已经在使用该应用的朋友
我的问题是我现在无法交叉引用我邀请的朋友和接受的朋友。
以前,当我向他们发送邀请时,我会存储一个朋友 ID,然后在稍后将其与玩游戏的朋友列表进行核对,但现在由于以下几个原因无法做到这一点:
- 邀请令牌不存在于好友边缘
- 无论如何它都是动态的
- invitable_friends 边缘不存在普通用户 ID。
- 我可以使用用户名作为键,但这不是唯一的。
实际问题: 有没有人想出一种方法来确定已受邀的用户是否接受了邀请?
【问题讨论】:
-
您可以使用独一无二的用户头像。但是,如果用户更改个人资料照片,则 url 将被更改,并且唯一性将丢失。
-
我在 facebook 开发者页面 facebook.com/groups/fbdevelopers/741657279211122/… 中与某人交谈。基本上,每当用户登录时,您都可以调用 GET /{user_id}/apprequests 来查看他们的待处理请求。或者,您也可以检查请求的状态。欲了解更多信息developers.facebook.com/docs/games/requests/v2.0
-
“邀请与请求具有相同的行为”。来自developers.facebook.com/docs/games/invitable-friends/v2.3 所以你可以做的是:阅读所有请求 为了阅读收件人的所有请求,你可以使用收件人的用户访问令牌查询如下图所示。这将返回应用程序中该用户的请求 ID 列表。获取graph.facebook.com/me/apprequests?access_token=[USER访问令牌]来自developers.facebook.com/docs/games/requests/v2.3
-
使用此链接...您在 2.0 facebook 上工作介绍新的 api .....developers.facebook.com/docs/games/invitable-friends/v2.4
-
@Maulik 这与我在问题的第一行中引用的链接相同(尽管它现在略有更新)
标签: ios facebook facebook-graph-api