我正在使用请求对话框向我的朋友发送申请请求。
现在,我想通过网址嵌入我的ID,所以当他点击邀请时,它必须是
带他到我的应用程序,并在我的浏览器的地址栏中得到这样的链接:apps.facebook.com/test?uid=1111111111
这个uid是我的uid,因为我把邀请发送给了我的朋友。
怎么做? 于21/10/2011更新
<script>
FB.init({
appId : 'YOUR_APP_ID',
status : true,
cookie : true,
oauth: true
});
function sendRequestToManyRecipients() {
FB.ui({method: 'apprequests',
message: 'My Great Request',
}, requestCallback);
}
function requestCallback(response) {
// Handle callback here
}
function getMultipleRequests(requestIds) {
FB.api('', {"ids": requestIds }, function(response) {
console.log(response);
});
}
</script>
答案 0 :(得分:5)
在Request Dialog properties中,可以使用属性data
来嵌入您的唯一标识符。
当用户点击邀请通知时,将返回一个(或多个,如果有多个朋友邀请hime)request_ids
。然后,您可以使用request_ids查询data
。
更新:将data
放入请求中:
FB.ui({method: 'apprequests',
message: 'My Great Request',
data: 'hello'
}, requestCallback);
<强> UPDATE2 强>
FB邀请有几个步骤:
1)此功能打开一个对话框,供用户(例如,用户A)选择要邀请的朋友:
FB.ui({method: 'apprequests',
message: 'My Great Request',
data: 'hello'
}, requestCallback);
2)用户A邀请朋友后说,用户B.用户B将收到有关其新闻提要的通知。
3)用户B点击进入通知,然后重定向到画布页面:apps.facebook.com/test?request_ids=xxxxxx
4)您可以使用request_ids
通过javascript
function getMultipleRequests(requestIds) {
FB.api('', {"ids": requestIds }, function(response) {
console.log(response);
});
}
或服务器代码(这里为php,但其他语言的机制相同):
//get the request ids from the query parameter
$request_ids = explode(',', $_REQUEST['request_ids']);
//build the full_request_id from request_id and user_id
function build_full_request_id($request_id, $user_id) {
return $request_id . '_' . $user_id;
}
//for each request_id, build the full_request_id and delete request
foreach ($request_ids as $request_id)
{
echo ("reqeust_id=".$request_id."<br>");
$full_request_id = build_full_request_id($request_id, $user_id);
echo ("full_request_id=".$full_request_id."<br>");
try {
$delete_success = $facebook->api("/$full_request_id",'DELETE');
if ($delete_success) {
echo "Successfully deleted " . $full_request_id;}
else {
echo "Delete failed".$full_request_id;}
}
catch (FacebookApiException $e) {
echo "error";}
}