Проверка статуса Event-RSVP и отображение отключено/включено RSVP-кнопок
-
26-10-2019 - |
Вопрос
Я все еще немного не уверен, как бы я нашел это в документации, но я хотел бы проверить, зарегистрирован ли пользователь RSVP в FB-EVENT или нет, и показать «Я посещаю» Кнопка в зависимости от этого ... У меня уже подключился кнопка входа в систему и соответствующие разрешения (user_events и rsvp_event), просто не уверен, как сделать это, используя JS SDK.
Решение
Вы можете запросить 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
Другие советы
Вы можете использовать API Graph для этого. Есть два сценария, которые могут представлять интерес: (1) Для события вы хотите перечислить, если пользователь посещает, и (2) для пользователя вы хотите перечислить событие, которое они посещают. Вам нужен user_events
разрешение для обоих сценариев.
Для (1): http get /event_id /посещение. Это вернет массив объектов с {id, name, rsvp_status}
поля. Ищите идентификатор пользователя, который вас интересует, и, если у них RSVP'd, то rsvp_status
Поле скажет вам, если они посещают.
Для (2): http get /user_id /события. Это вернет все события для пользователя с несколькими полями, но также и {id, name, rsvp_status}
Поля, как указано выше. На этот раз ищите идентификатор события, который вам интересует, а затем rsvp_status
Поле скажет вам, посещает ли текущий пользователь, а не посещать, может быть, посещать или у него нет RSVP'd (т.е. rsvp_status
является unsure
).
На самом деле, есть более простой способ сделать все это. Проблема с запросом FQL состоит в том, что есть задержка в 15-30 секунд после того, как вы отправите RSVP для появления статуса. Но это работает в графическом API без страниц. Попробуйте запрос получить запрос в этой форме:
/[Идентификатор события]/Приглашен?
Он вернет структуру данных с RSVP_STATUS, если пользователь вообще имеет RSVPED, в том числе для публичных событий, где этот пользователь технически не был «приглашен». Если структура данных пустая, то они вообще не RSVED.