Facebook FQL查询(#601)分析器错误:位置58处出现意外“#”

时间:2012-08-20 11:26:20

标签: api graph facebook-fql facebook-php-sdk

这是我第一次无法找到自己的错误解决方案。 我尝试执行一个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 Explorer.

有没有人有解决方案?

1 个答案:

答案 0 :(得分:3)

问题似乎是您不能拥有与保留的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位。