0

FacebookのMultiquery FQLで次のことを達成しようとしています。私が参加しているすべてのファンページイベントのリストを取得しています。Facebook FQL - ユーザーが参加しているすべてのファンページ

私は以下のロジックを持ち、以下のFQLステートメントと同様のものを実装しようとしました。 (特定のIDを使用して)ファンページから/によって作成されたすべてのイベントの

  1. GETリスト
  2. event_member FQLテーブルから
  3. マッチEIDさんが出席し、すべての私(のユーザー)のイベントのリストを取得します一致する場合、rsvp_statusは
  4. の表示結果になります。

FQLマルチ

{ "クエリー1"、 "QUERY2" "(event_member UID = $ fanpageID FROM EIDを選択)IN EIDイベントからのEIDを選択": "rsvp_statusを選択event_member FROM WHERE はuid = $ uidAND EID (#1 Query1をFROM EIDを選択) "}

で、私は文が間違っている知っている、しかし、私はこれをやろうとしているに苦労しています。私はグラフAPIを使ってこれを達成しました。私のPHPコードでは非常に面倒なforeachループのセットを使用しています。

単一のマルチクエリFQL文を使用する方がはるかに効率的です。

どのような提案も素晴らしいでしょう。今持っ

EDIT

問題イムは、私は次のことを実行したときにifaourのFQL文はしかし、FQLクエリコンソール(戻り値の結果)内で動作し、空の配列が返されます。

私は文を(SELECT eid FROM event WHERE creator = $ fanPageID)に分解すると、FQLコンソールはそのeidを非索引可能にハイライト表示します。ここで

関数usersEventsPoints($のUID、 $ Facebookの、$ fanpageID){

 $events = "SELECT eid FROM event WHERE creator=$fanpageID AND eid 

IN(event_member FROM EIDを選択WHERE はuid = $のUIDとrsvp_status =私のPHPです"出席\") "\ ;

 $eventsAttendance = $facebook->api(array(
       'method' => 'fql.query', 
       'query' =>$events,)); 

     $eventsAttendingcount = 0; 

のforeach ($ eventsAttendanceFetchとして$ eventsAttendance){

if($eventsAttendanceFetch['eid'] == true){ 
       $eventsAttendingcount++; 
      } 
     } 
     return $eventsAttendingcount; 
    } 

BLOCKQUOTE

任意のアイデアは?

答えて

1

を使用して、出席者のリストを取得します非常に単純なタスク:

SELECT eid FROM event WHERE creator = $fanpageID AND eid IN (SELECT eid FROM event_member WHERE uid = me() AND rsvp_status = "attending") 

これは、IDが$fanpageIDであり、メンバーが()のメンバーであり、ステータスがattendingであるページによって作成/所有されているすべてのイベントのIDを返します。

編集
カウントを取得するために返された配列をループしていますか?

$eventsAttendingcount = count($eventsAttendance); 

また、一致するユーザーがあなたのアプリケーションを承認し、正しいアクセス許可を与えていることを確認してください。私が使用して参加者のリストを引っ張って試してみた

let graphPath = "/me/events?limit=10&type=attending&since=now" 
let params = ["fields": "id, name, category, start_time, end_time, timezone, updated_time, type, attending_count, owner, place"] 

let request = GraphRequest(graphPath: graphPath, parameters: params, accessToken: accessToken, httpMethod: .GET, apiVersion: apiVersion) 
request.start {} 
+0

助けてくれてありがとう、Barry、私はもともと、グラフapiを使って、イベントで見つけられたIDとユーザーのIDを相互参照するスクリプトを書いていました。 ifaour、あなたの方法は完璧に働いてくれてありがとう。私の先入観は、これが単一のステートメントよりもむしろマルチクエリのFQLステートメントになることを意味していました。どうもありがとうございました!。 – clazzy

+0

問題今のところ、ifaourのFQL文はFQLクエリコンソール(戻り値)内で動作しますが、以下を実行すると空の配列が返されます。私が文を解読したときにちょうど – clazzy

+0

あなたの最後のコメントと質問の編集が回答されました。 :-) – ifaour

0

私は問題の内容を理解していません。あなたのFQLステートメントを実行しました。イベントのリストとあなたのRSVPステータスを返します。

もう1つの注意点として、 events.getメソッドを使用してください。 UserIdを渡すと、イベント情報が表示されます。あなたは、RSVPステータスでフィルタリングすることができます。

ちょうどチェックされていて、events.getメソッドが廃止されようとしています。

あなたはあなたのイベントの参加者のリストを与える新しいグラフAPIを使用する必要があります。

http://developers.facebook.com/docs/reference/api/event

あなたはそれだ

https://graph.facebook.com/EVENT_ID/attending

+0

: –

0

あなたはイベントが、あなたはこのようなあなたのスウィフトクエリを構築することができattendingに設定されている場所のFacebookの次の10回のイベントは、ユーザーがログインして取得したい場合は

グラフAPIと私はイベントページに表示される出席者の完全なリストを取得しません。
関連する問題