0

現在、facebook api にクエリを実行して、2 つの fql クエリを使用してバッチ リクエストを介してデータを取得しようとしています。

クエリの 1 つは、次の形式で一連のアルバム ID をフェッチします。

Select aid FROM album WHERE ...

もう 1 つは、見つかったアルバムの写真を取得しようとします。

SELECT ... FROM photo WHERE aid IN ({result=album_ids:$.*.aid})

「album_ids」は最初のクエリの名前です。

ほとんどの場合、これは完全に機能しますが、アルバムに '_' を含むエイドが付いていることがあります。これは、ドキュメンテーションでエイドが文字列として指定されているため、まったく問題ありません。ただし、2 番目のクエリの jsonpath は、facebook API に従って ID を引用していません。

 Parser error: unexpected '_xxxxx' at position xx
 ...
 SELECT ... FROM photo WHERE aid IN (10000xxxxxxxxxx_xxxxx)

最初のクエリの json の結果には、明らかにそれらが引用されています。

 [{\"aid\":\"xxxxxxxxxxxxxxxxxxx\"},{\"aid\":\"10000xxxxxxxxxx_xxxxx\"},...]

ここに何かが欠けているのでしょうか、それとも明らかに文字列であっても、2 番目のクエリで id を引用するために facebook が誤ってスキップしますか? facebook-api と jsonpath の仕様を見る限り、これは機能するはずです。

または、これを期待どおりに動作させるための回避策はありますか? (クライアント側で引用を行い、2 つの別々の要求を使用する場合を除く)。

現在、ここで提案されているようにクエリを変更しようとしています: Quoting/escaping jsonpath elements for in clause ofdependent fql queries しかし、クエリ自体を完全に再構築しない方法があるかもしれません。

4

0 に答える 0