我目前正在尝试查询facebook api,通过两次fql查询的批处理请求检索一些数据。
其中一个查询以以下形式提取一组专辑ID:
Select aid FROM album WHERE ...
当另一个人试图检索找到的相册的照片时:
SELECT ... FROM photo WHERE aid IN ({result=album_ids:$.*.aid})
其中'album_ids'是第一个查询的名称。
大部分时间这种方式都很完美,但有时一张专辑附带一个包含'_'的辅助工具 - 由于文档将辅助工具指定为字符串,因此非常好。 但是,第二个查询中的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\"},...]
我在这里遗漏了什么或者facebook错误地跳过引用第二个查询中的ID,即使它们显然是字符串。 据我所知,在facebook-api和jsonpath规范中,这应该可行。
或者是否有解决办法使其按预期行事? (除了做引用客户端和两个单独的请求)。
现在我正在尝试按照此处的建议更改我的查询:Quoting/escaping jsonpath elements for in clause of dependent fql queries 但也许有一种方法没有完全重构查询本身。