Frage

Ich bin immer noch ein bisschen unsicher, wie ich das in der Dokumentation finden würde, aber ich möchte überprüfen, ob der protokollierte Benutzer einen FB-Event hat oder nicht, und zeigen, dass "ich teilnehme". Button abhängig davon ... Ich habe bereits die Anmeldetaste angeschlossen und die richtigen Berechtigungen (User_Events und RSVP_Event), nur nicht sicher, wie man das mit dem JS SDK vorstellt.

War es hilfreich?

Lösung

Sie können das abfragen event_member FQL -Tabelle, so etwas wie:

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);
    }
);

Würde zurückkehren (alarmieren), so etwas wie: declined

Andere Tipps

Zu diesem Zweck können Sie die Graph -API verwenden. Es gibt zwei Szenarien, die möglicherweise von Interesse sein können: (1) Für ein Ereignis möchten Sie auflisten, wenn der Benutzer teilnimmt, und (2) für einen Benutzer möchten Sie die Veranstaltung auflisten, die er teilnimmt. Du brauchst das user_events Erlaubnis für beide Szenarien.

Für (1): http get /event_id /sehne. Dadurch wird eine Reihe von Objekten mit zurückgegeben {id, name, rsvp_status} Felder. Suchen Sie nach der Benutzer -ID, an der Sie interessiert sind, und wenn sie RSVP'd haben, dann die rsvp_status Field wird Ihnen sagen, ob sie teilnehmen.

Für (2): http get /user_id /events. Dadurch wird alle Ereignisse für den Benutzer mit mehreren Feldern zurückgegeben, aber auch {id, name, rsvp_status} Felder wie oben. Suchen Sie diesmal nach der Event -ID, an der Sie interessiert sind, und dann die rsvp_status Das Feld sagt Ihnen, ob der aktuelle Benutzer anwesend ist, nicht anwesend ist, vielleicht anwesend ist, oder hat RSVP nicht anwesend (dh nicht rsvp_status ist unsure).

Tatsächlich gibt es eine einfachere Möglichkeit, all dies zu tun. Das Problem bei der FQL-Abfrage besteht darin, dass eine Verzögerung von 15 bis 30 Sekunden nach dem Einreichen des RSVP für den Status zum Antreten des Status besteht. Dies funktioniert jedoch in der Graph -API ohne Pagination. Versuchen Sie eine Get -Anfrage in diesem Formular:

/[Ereignis -ID]/eingeladen? User = [user_id] & access_token = [access_token

Es wird eine Datenstruktur mit dem RSVP_Status zurückgeben, wenn der Benutzer überhaupt RSV eingeschlagen hat, einschließlich für öffentliche Ereignisse, bei denen dieser Benutzer technisch nicht "eingeladen" war. Wenn die Datenstruktur leer ist, haben sie überhaupt nicht rsviert.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top