Я все еще немного не уверен, как найти это в документации, но я хотел бы проверить, есть ли у вошедшего в систему пользователя RSVP на fb-событие или нет, и показать «Я посещаю» кнопка в зависимости от этого... Я уже подключил кнопку входа в систему и соответствующие разрешения (user_events и rsvp_event), просто не знаю, как это сделать с помощью JS SDK.
Проверка статуса event-rsvp и отображение отключенной/включенной кнопки RSVP
Ответы (3)
Вы можете запросить таблицу event_member
FQL, например:
FB.api(
{
method: 'fql.query',
query: 'select rsvp_status from event_member where eid = "EVENT_ID" and uid=me()'
}, function(response) {
alert(response[0].rsvp_status);
}
);
Вернет (предупредит) что-то вроде: declined
REST API is deprecated for versions v2.1 and higher
- person Ozzy; 12.08.2014
Для этого можно использовать Graph API. Есть два сценария, которые могут представлять интерес: (1) для события вы хотите перечислить, посещает ли пользователь, и (2) для пользователя вы хотите перечислить событие, которое он посещает. Вам необходимо разрешение user_events
для обоих сценариев.
Для (1): HTTP GET /EVENT_ID/посещение. Это вернет массив объектов с {id, name, rsvp_status}
полями. Найдите интересующий вас идентификатор пользователя, и, если он ответил на приглашение, в поле rsvp_status
будет указано, присутствует ли он.
Для (2): HTTP GET/USER_ID/события. Это вернет все события для пользователя с несколькими полями, а также с {id, name, rsvp_status}
полями, как указано выше. На этот раз найдите интересующий вас идентификатор события, а затем поле rsvp_status
сообщит вам, посещает ли текущий пользователь, не посещает, возможно, посещает или не ответил на приглашение (т. е. rsvp_status
равно unsure
).
/EVENT_ID/attending/USER_ID
или даже лучше /USER_ID/events/EVENT_ID
я прав? :-)
- person ifaour; 06.09.2011
На самом деле, есть более простой способ сделать все это. Проблема с запросом FQL заключается в том, что после отправки RSVP для отображения статуса возникает задержка примерно 15-30 секунд. Но это работает в графическом API без разбиения на страницы. Попробуйте запрос GET в такой форме:
/[идентификатор события]/invited?user=[user_id]&access_token=[access_token]
Он вернет структуру данных с rsvp_status, если пользователь вообще ответил на приглашение, в том числе для публичных мероприятий, на которые этот пользователь технически не был «приглашен». Если структура данных пуста, значит, они вообще не ответили на приглашение.