FQL マルチクエリを使用してユーザーのイベントを取得しています。
NSString *eventQuery1 = @"SELECT name, start_time, end_time, location, description, venue, host, eid, privacy FROM event WHERE eid IN ( SELECT eid FROM event_member WHERE uid = me() AND rsvp_status='attending' )";
NSString *eventQuery2 = @"SELECT name, start_time, end_time, location, description, venue, host, eid, privacy FROM event WHERE eid IN ( SELECT eid FROM event_member WHERE uid = me() AND rsvp_status='maybe' )";
NSString *eventQuery3 = @"SELECT name, start_time, end_time, location, description, venue, host, eid, privacy FROM event WHERE eid IN ( SELECT eid FROM event_member WHERE uid = me() AND rsvp_status='declined' )";
NSString *eventQuery4 = @"SELECT name, start_time, end_time, location, description, venue, host, eid, privacy FROM event WHERE eid IN ( SELECT eid FROM event_member WHERE uid = me() AND rsvp_status='not_replied' )";
NSString* fql = [NSString stringWithFormat:
@"{\"attending\":\"%@\",\"maybe\":\"%@\",\"declined\":\"%@\",\"not_replied\":\"%@\"}",eventQuery1, eventQuery2, eventQuery3, eventQuery4];
NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObject:fql forKey:@"queries"];
[_facebook requestWithMethodName:@"fql.multiquery" andParams:params andHttpMethod:@"GET" andDelegate:self];
イベントを取得したら、それらを Core Data に保存します。後で情報を取得する必要がある場合 (イベントの画像など)、「eid」を使用してイベントの画像を取得します。しかし、これらの「eid」フィールドが Facebook グラフ呼び出しによって返されるものと一致しないことに気付きました。グラフでは、イベントの ID を取得し、それを使用して後でイベントの画像を取得します。
"id": "281780925236476",
私の質問は次のとおりです: FQL を使用して、グラフ API によって返されるこの一意のイベント ID を取得するにはどうすればよいですか? または、グラフ API 呼び出しを使用して、FQL クエリと同じ結果を取得することもできます: すべてのイベント (おそらくバッチ呼び出しを使用) とすべてのイベント フィールド。たとえば、/events への Graph API クエリは、イベントの説明を返しません。
iOS アプリケーションからの HTTP 呼び出しの量を最小限に抑えようとしていますが、FQL クエリを使用する方法のようです。同じ結果が得られるなら、Graph API を使用したいと思います。
ありがとう