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。
在每个朋友对象上返回的invite令牌是一个唯一的(每个用户和每个游戏)可变长度的字符串,它是名为id的字段的值。invite令牌是到期的,并且可以在游戏会话之间改变。因此,不建议缓存这些结果,或者尝试将它们分配给给定的人。
friends
edge现在只返回已经使用过该应用程序的朋友
我的问题是,我现在无法交叉参考我邀请了哪些朋友,哪些朋友已经接受了。
以前,我会在发送邀请时存储一个好友id,并在稍后将其与玩游戏的朋友列表进行核对,但现在这是不可能的,原因有几个:
实际问题:有没有人设计出一种方法,从被邀请的用户中确定哪些用户接受了邀请??
发布于 2017-04-29 00:22:53
TLDR:保存来自实际的邀请这些朋友请求的响应
据我所知,您提供的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
的代码行:你可以把invite标记放在那里。
现在,响应如下所示:
{
request: 'REQUEST_OBJECT_ID'
to:[array of USER_IDs]
}
这样您就得到了您的用户ids。
如果你需要更多信息,或者想看看谁接受了,那么你有两个选择:
GET https://graph.facebook.com/me/apprequests?access_token=[USER ACCESS TOKEN]
要查看是谁邀请了他,可以用接收用户的http://graph.facebook.com/{REQUEST_OBJECT_ID}?access_token=USER_ACCESS_TOKEN
检查request_object_id
,得到的响应如下:
{
"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}
https://stackoverflow.com/questions/24451650
复制相似问题