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,并且稍后会针对玩游戏的朋友列表进行检查,但现在由于以下几个原因这是不可能的:
实际问题: 有没有人设计过一种方法来确定已经被邀请的用户,哪些已经接受了邀请?
答案 0 :(得分:1)
据我了解您提供的reference:
您可以开始申请我认为您已经可以做的invite_token
。
作为答案,您可以按invitable_friend
:
{
"id": "AVlzYTkXshfBqLe58zR9tY5dZ7L0wltTUkWKT0Z5V87zkwv-39...", // Invite Token
"name": "Guy Cross",
"picture": {
"data": {
"is_silhouette": false,
"url": "https://fbcdn-profile-a.akamaihd.net/hprofile-ak-prn1/t5.0-1/623782_622770420_2109148508_q.jpg"
}
}
}
该页面通常提到了如何处理请求:
FB.ui({method: 'apprequests',
message: 'YOUR_MESSAGE_HERE',
to: 'USER_ID, USER_ID, INVITE_TOKEN' // It says invite token
}, function(response){
console.log(response);
});
查看to
行:您可以将邀请令牌放在那里。
现在响应如下:
{
request: 'REQUEST_OBJECT_ID'
to:[array of USER_IDs]
}
你有你的用户ID。
如果你走得更远,或者需要更多的信息或想要看谁接受,那么你有两个选择:
GET https://graph.facebook.com/me/apprequests?access_token=[USER ACCESS TOKEN]
要查看邀请他的人,您可以查看request_object_id
与接收用户的http://graph.facebook.com/{REQUEST_OBJECT_ID}?access_token=USER_ACCESS_TOKEN
,以下回复将是:
{
"id": "REQUEST_OBJECT_ID",
"application": {
"name": "APP_DISPLAY_NAME",
"namespace": "APP_NAMESPACE",
"id": "APP_ID"
},
"to": {
"name": "RECIPIENT_FULL_NAME",
"id": "RECIPIENT_USER_ID"
},
"from": {
"name": "SENDER_FULL_NAME",
"id": "SENDER_USER_ID"
},
"message": "ATTACHED_MESSAGE",
"created_time": "2014-01-17T16:39:00+0000"
}
如果您使用发件人中的用户访问令牌,则会收到以下信息:
{
"id": "REQUEST_OBJECT_ID",
"application": {
"name": "APP_DISPLAY_NAME",
"namespace": "APP_NAMESPACE",
"id": "APP_ID"
},
"from": {
"name": "SENDER_FULL_NAME",
"id": "SENDER_USER_ID"
},
"message": "ATTACHED_MESSAGE",
"created_time": "2014-01-17T16:39:00+0000"
}
为防止这种情况发生,您可以指定接收用户的用户ID,并从接收方获得相同的答案:https://graph.facebook.com/{REQUEST_OBJECT_ID}_{USER_ID}?access_token={APP_ACCESS_TOKEN}