с помощью документов, учебных пособий и этого форума мне удалось создать событие для вошедшего в систему пользователя на его профиле или странице, как он сам выберет.
Я также решил, что для приглашения друзей мне нужно использовать events.invite.
Поскольку я не хочу приглашать всех друзей пользователя, кроме нескольких, я реализовал запрос, который в результате возвращает идентификаторы выбранного друга.
Те, которые я использую для вызова events.invite. В результате я получаю bool 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"
));
}
Надеюсь, это не было слишком подробно. Я был бы признателен за любую помощь, так как после нескольких дней чтения и экспериментов я, наконец, застрял в этой точке. Thx!