我想要做的是获取请求ID并插入我的数据库。我的请求对话框运行良好,但问题是我无法获得'TO'用户ID http://developers.facebook.com/docs/reference/dialogs/requests/,但我仍然无法获取请求用户ID。
这是我的编码:
function newInvite(){
//var user_ids = document.getElementsByName("user_ids")[0].value;
FB.ui({
method : 'apprequests',
title: 'X-MATCH',
message: 'Come join US now, having fun here',
},
function getMultipleRequests(requestIds) {
FB.api('', {"ids": requestIds }, function(response) {
console.log(response);
});
}
);
}
对此有何解决方案?
万万感谢您的帮助
答案 0 :(得分:4)
您是否有效启用请求2.0?
如果您已启用,则可以轻松获取用户ID,如此
{
request: ‘request_id’
to:[array of user_ids]
}
在回调函数中,您可以使用
response.request
获取请求ID
response.to
获取用户ID数组
请注意,如果您使用请求2.0,请求ID格式将是这样的
<request_object_id>_<user_id>
如果您没有启用它,那么您只能获取请求ID数组,并且需要再次进行api调用以获取用户ID
<强>编辑:强>
FB.ui({
method : "apprequests",
title : "your title",
message : "your msg"
},
function(response) {
var receiverIDs;
if (response.request) {
var receiverIDs = response.to; // receiverIDs is an array holding all user ids
}
}
);
然后你可以使用数组“receiverIDs”进行进一步的处理
例如,我向用户ID发送了一个ID为“1234”,“5678”
的请求回复将是这样的:
{
request: ‘1234567890’ // example,
to:['1234', '5678']
}
在请求2.0中,完整的请求ID将如下所示
1234567890_1234
1234567890_5678
警告:如果您使用请求2.0,FB doc会告诉您自己管理和删除请求, 记得删除上面的id,如果直接删除请求'123456789',所有带有此前缀的完整请求ID都将被删除。
=============================================== ===================
如果您尚未启用请求2.0,请按照文档页面上的代码查看如何通过api调用获取用户ID
function getMultipleRequests(requestIds) {
FB.api('', {"ids": requestIds }, function(response) {
console.log(response);
});
}
这些方法的响应格式如下:
{
"id": "[request_id]",
"application": {
"name": "[Application Name]",
"id": "[Application ID]"
},
"to": {
"name": "[Recipient User Name]",
"id": "[Recipient User ID]"
},
"from": {
"name": "[Sender User ID]",
"id": "[Sender User Name]"
},
"message": "[Request Message]",
"created_time": "2011-09-12T23:08:47+0000"
}
你可以实现api调用的回调,并通过response.to.id