2012-05-17 14 views
14

W mojej aplikacji na iOS, uzyskać dostęp symboliczny stosując następujący kod:Getting wszystkie moje wydarzenia na Facebooku iOS SDK

[self.facebook authorize:[NSArray arrayWithObjects:@"user_events", 
@"friends_events", nil]]; 

I wtedy poprosić moich wydarzenia z następującego kodu:

[self.facebook requestWithGraphPath:@"me/events" andDelegate:friendsVC]; 

Ale w odpowiedzi otrzymuję tylko wydarzenia, na które mam RSVP. Chciałbym uzyskać wszystkie moje wydarzenia, w tym te, których nie otrzymałem RSVP.

Wszelkie pomysły?

Odpowiedz

2

Można uzyskać listę zdarzeń, niezależnie od ich statusu RSVP z kolejnym zapytaniu FQL:

SELECT eid, name, venue, location, start_time FROM event WHERE eid IN (
    SELECT eid from event_member WHERE uid = me() 
) 

To nie powróci stan RSVP dla każdego zdarzenia, ale tylko zdarzeń szczegółów. Możesz użyć Batch Requests, aby uzyskać oba szczegóły zdarzeń i rsvp_status z tym samym zapytaniem.

https://graph.facebook.com/?method=post&batch=[ 
    { 
    "name":"rsvp", 
    "relative_url":"fql?q=SELECT+eid,rsvp_status+FROM+event_member+WHERE+uid=me()", 
    "omit_response_on_success":false 
    }, 
    { 
    "relative_url":"?ids={result=rsvp:$.data.*.eid}" 
    } 
] 

Zobacz event i event_member dokumentację stół do szczegółowych informacji na temat innych dziedzinach można pragną odzyskać.

Uwagi:

Zaczynając 5 lipca token dostępu będzie wymagany dostęp do zdarzenia nawet publiczne.

6

Żądanie

/Me/wydarzenia

daje tylko wydarzenia użytkownik jest (może być) planuje uczestniczyć. Odpowiedź nie obejmuje wydarzeń, na które użytkownik został zaproszony (ale nie odpowiedział) lub odrzucono.

Istnieją inne wnioski, które mogą być pomocne:

Można sprawdzić, czy użytkownik został zaproszony na zdarzenie tak:

/event_id/zaproszony/USER_ID

stan RSVP można sprawdzić imprezy:

/event_id/uczestniczy

/event_id/może

/event_id/odmówił

/event_id/zaproszony

gdzie każde żądanie zwraca listę użytkowników z odpytywany statusu RSVP.

+0

Właściwie, wydarzenia, na które odpowiedziałem z "Być może" są uwzględnione w odpowiedzi na żądanie 'me/events'. – sentinel

+0

Strzeż się połączenia "zdarzeń" * domyślnie w ciągu ostatnich dwóch tygodni * (użyj parametrów "od"/"do", aby określić żądany zakres czasu). –

0

Myślę, że możesz uzyskać events przez zapytanie fql. Musisz spróbować tego.

Zobacz te How-To: Use the Graph API to Manage Events.

Musisz HTTP GET z następujących Graph API:

fql?q=SELECT uid,eid,rsvp_status FROM event_member WHERE uid = me()

można odzyskać wszystkie statusy z tej rozmowy.

{ 
    "data": [ 
    { 
     "uid": "723020003", 
     "eid": "19935786340002", 
     "rsvp_status": "not_replied" 
    }, 
    { 
     "uid": "723020003", 
     "eid": "234524000290351", 
     "rsvp_status": "attending" 
    }, 
    { 
     "uid": "723020003", 
     "eid": "210091000081240", 
     "rsvp_status": "declined" 
    }, 
    { 
     "uid": "723020003", 
     "eid": "210091000341240", 
     "rsvp_status": "unsure" 
    } 
    ] 
} 
0

To nie jest kompletnym rozwiązaniem, a to nie może działać, ale sprawdzić, czy jest możliwe, aby uzyskać dostęp do iCal feed wydarzeń z Facebooka użytkownika. Zaprenumeruję mój kanał iCal i zauważyłem, że wszystkie zdarzenia, nawet te, które mam jeszcze do RSVP, są zawarte w kanale.

Coś do spróbowania!

0

Stosować /Me/wydarzenia dotyczące uzyskiwania zdarzeń użytkownik zareagowała i /Me/Wydarzenia/not_replied dla innych.

Na przykład (zakładając, że stworzyliśmy sesję):

[FBRequestConnection startWithGraphPath:@"/me/events/not_replied" completionHandler:^(FBRequestConnection *connection, id result, NSError *error) 
{ 
    FBGraphObject* data = (FBGraphObject*)result; 
    NSMutableArray* array = [data objectForKey:@"data"]; 

    //parse data etc.. 
}]; 

Zobacz https://developers.facebook.com/docs/graph-api/reference/v2.0/user/events/ aby uzyskać więcej informacji.

Powiązane problemy