我目前正在尝试查询 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 规范中看到的,这应该可以工作。
还是有一种解决方法可以使其按预期运行?(除了引用客户端和两个单独的请求)。
现在我正在尝试按照此处的建议更改我的查询:引用/转义 jsonpath 元素以用于依赖 fql 查询的 in 子句 但也许有一种方法无需完全重新构建查询本身。