Приглашение выбранных пользователей на Facebook-событие (через Graph API) - PullRequest
0 голосов
/ 03 августа 2011

с помощью документов, учебных пособий и этого форума мне удалось создать событие для вошедшего в систему пользователя на его профиле или странице, как он сам выберет. Я также решил, что для приглашения друзей мне нужно использовать 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!

Ответы [ 2 ]

1 голос
/ 05 декабря 2011

График API теперь позволяет приглашать пользователей по user_id.См. http://developers.facebook.com/docs/reference/api/event/

пригласительный

Создать

Вы можете пригласить пользователей на событие, отправив HTTP-запрос POST для / EVENT_ID / Invite / USER_ID.Вы можете пригласить нескольких пользователей, введя HTTP-запрос POST для / EVENT_ID / Invite? Users = USER_ID1, USER_ID2, USER_ID3.Оба из них требуют разрешения create_event и возвращают true, если приглашение прошло успешно.

0 голосов
/ 04 августа 2011

Я не думаю, что "отправленное приглашение на мероприятие" еще есть в GRAPH API.Он доступен в REST API, но работает не так, как мы ожидаем.Я нашел некоторые известные проблемы и ограничения с событиями в Facebook.Пожалуйста, смотрите ссылки ниже из официальной документации на Facebook

Ограничение количества людей, которые могут быть приглашены на мероприятие.http://www.facebook.com/help/?faq=12576#!/help/?faq=202545109787461

Участники мероприятия не получают отправленные мной сообщения.http://www.facebook.com/help/?page=786#!/help/?faq=188295427885002

...