5

自分でエラーの解決策を見つけることができないのは初めてです。fql クエリを実行しようとしましたが、非常に奇妙な応答が返されました:/

FQL:

{
  "477215715631180":
      "SELECT name, start_time, location, creator, pic_square 
       FROM event WHERE eid=477215715631180",
  "creator_477215715631180":
      "SELECT name FROM profile WHERE id IN (SELECT creator FROM #477215715631180)"
 }

応答:

(#601) Parser error: unexpected '#' at position 58.

58位:

... FROM event WHERE ...

API エクスプローラー。

解決策を持っている人はいますか?

4

1 に答える 1

4

問題は、予約済みの FQL アイテムと同じ名前のサブクエリを使用できないことです。ここでは、クエリ指定子に ID を使用しています。Facebookはそれを好まない。

サブクエリ名の先頭に「q」を追加することで、クエリを実行できました。

{
  "q477215715631180":
      "SELECT name, start_time, location, creator, pic_square 
       FROM event WHERE eid=477215715631180",
  "creator_477215715631180":
      "SELECT name FROM profile WHERE id IN (SELECT creator FROM #q477215715631180)"
}

パーサー エラーの場合、Facebook のメッセージは FQL マルチクエリ全体を参照していません。Facebook は各クエリを個別に解析し、解析中の現在のクエリに対してのみエラーをスローします。したがって、あなたの場合、最初のクエリが正常に解析された後、このエラーはcreator_クエリから#発生し、位置 58 で発生しました。

于 2012-08-20T11:47:53.037 に答える