2012-05-17 30 views
14

を経由してすべての私のイベントを取得、私は次のコードを使用してアクセストークンを取得:私のiOSアプリでFacebookのiOSのSDK

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

私はその後、次のコードで、私のイベントを要求します。

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

しかし、レスポンスとして、私はRSVPを持っているイベントだけを取得します。私は、私がRSVPしていないものを含め、すべての私のイベントを取得したいと思います。

アイデア?

答えて

2

あなたは次のFQLクエリに関係なく、彼らのRSVPステータスのイベントのリストを取得することができます。

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

これは、各イベントが、ちょうどイベントの詳細については、RSVPの状態を返しません。イベントの詳細を取得する場合はBatch Requestsを使用し、同じクエリを使用する場合はrsvp_statusを使用することをお勧めします。

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}" 
    } 
] 

は、あなたが取得することを望むかもしれない他のフィールドの詳細についてはeventevent_memberテーブルのドキュメントを参照してください。

注:

7月5日に開始すると、アクセストークンでも公共のイベントにアクセスする必要があります。

6

要求

/ME /イベント

ユーザーのみが参加する(多分)の計画であるあなたのイベントを提供します。応答には、ユーザーが招待された(応答されなかった)、または拒否されたイベントは含まれません。

助けになることがあり、他の要求があります。

/EVENT_ID /招待/ USER_ID

は、ユーザーがそのようなイベントに招待されているかどうかをチェックすることができます

RSVPステータスは、イベントによって確認できます。

/EVENT_ID /出席する

/EVENT_ID /多分

/EVENT_ID /は

/EVENT_ID /減の各要求が照会RSVPステータスを持つユーザーのリストを返します

を招待。

+0

実際、「私/イベント」リクエストに対する応答には、「多分」と回答したイベントが含まれています。 – sentinel

+0

'events'接続は過去2週間*にデフォルト設定されています*(' since'/'until'パラメータで希望の時間範囲を指定してください)。 –

0

fqlクエリでeventsが表示される場合があります。あなたはこれを試す必要があります。

また、How-To: Use the Graph API to Manage Eventsも参照してください。

あなたはグラフAPIから次のHTTP取得する必要があります:

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

あなたはその呼び出しから戻ってすべてのステータスを取得することができます。

{ 
    "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

これは完全な解決策ではなく、これは動作しますが、それはユーザーのFacebookのイベントのiCalのフィードへのアクセスを取得することが可能ですかどうかを確認しないことがあります。私は自分のiCalフィードを購読しています。私は、まだ私がまだRSVPに持っていないすべてのイベントがフィードに含まれていることに気付きました。

何か試してみてください!

0

使用は/ ME /ユーザが応答したイベントを取得するイベント、および/ME /イベント/他人のためにをnot_replied。例えば

(セッションを作成したと仮定した場合):

[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.. 
}]; 

は、詳細はhttps://developers.facebook.com/docs/graph-api/reference/v2.0/user/events/を参照してください。