在文档,教程和本论坛的帮助下,我设法为他的个人档案或页面上的登录用户创建了一个事件,如他所选。 我也想到,为了邀请朋友,我不得不使用events.invite。邀请所选用户参加Facebook-Event(通过Graph API)
由于我不想邀请所有用户的朋友,但几个,我实现了一个请求,作为结果返回选定的朋友的ID。
那些我正在使用的events.invite调用。我得到布尔1作为结果(这意味着,邀请已成功发送),但没有邀请在朋友书签或活动页面中看到。
除邀请函之外的所有内容都正在工作。
3个问题上来:
1)events.invite是否需要除 'create_event' 其他权限? 我单独尝试了events.invite,但无法获得结果...
2)在发送邀请之前是否有更好的方法来选择好友?我不希望应用程序请求在每次创建事件时发出。
3)如果2是否定的,应用程序请求(和书签)如何被压制或从朋友的个人资料中删除?通过API删除请求显然不会删除应用程序请求中的消息。
*在主脚本:[JavaScript的]
function sendRequest() {
FB.ui({
method: 'apprequests',
message: 'Test',
title: 'event invitation for up to 20 friends',
max_recipients: 20,
},
function (response) {
if (response && response.request_ids) {
var requests = response.request_ids.join(',');
var invite_ids = new Ajax.Request('/facebook/handle_invitation.php', {
onSuccess: function(test) { alert('Done!'); },
method: 'post',
parameters: {tid: '<?php echo $target_id; ?>',
request_ids: requests,
eid:'<?php echo $event_id; ?>',
token: '<?php echo $access_token; ?>'}
});
} else {
alert('canceled');
}
});
return false;
}
*和在 'handle_invitation.php'(从请求响应调用):
if(isset($_POST['request_ids']) && isset($_POST['uid'])) {
$target_id = $_POST['tid'];
$event_id = $_POST['eid'];
$access_token = $_POST['token'];
$requests = explode(',',$_POST['request_ids']);
foreach($requests as $request_id) {
$request_data = $fb->api("/$request_id?$access_token");
$invite_id[] = $request_data['to']['id'];
$fb->api("/$request_id?$access_token", "DELETE");
}
//invite friends to my event
$return = $fb->api(array(
'method' => 'events.invite',
'eid' => $event_id,
'uids' => $invite_id,
'personal_message' =>"Einladung zu meinem Event"
));
}
希望这不是太详细。我很感激任何帮助,因为经过几天的阅读和试验,我终于停留在这一点上。谢谢!
你说得对。还没有Graph API事件邀请。因此我依赖于旧的REST API的events.invite。据我以前阅读,它限制为最多50个被邀请者。我将最大值设置为20.不幸的是,我无法打开,也找不到您链接的第二个常见问题解答。 – multikulinaria