Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Facebook 带有HTTP GET的FQL多查询在Graph API资源管理器中工作,但在其他任何地方都不工作?_Facebook_Get_Facebook Fql_Fql.multiquery - Fatal编程技术网

Facebook 带有HTTP GET的FQL多查询在Graph API资源管理器中工作,但在其他任何地方都不工作?

Facebook 带有HTTP GET的FQL多查询在Graph API资源管理器中工作,但在其他任何地方都不工作?,facebook,get,facebook-fql,fql.multiquery,Facebook,Get,Facebook Fql,Fql.multiquery,此FQL多重查询,例如: https://graph.facebook.com/fql?q={"posts":"SELECT actor_id,message,permalink,created_time,comments.count FROM stream WHERE source_id=me()","actors":"SELECT uid,name,pic_square,profile_url FROM user WHERE uid IN (SELECT actor_id FROM #pos

此FQL多重查询,例如:

https://graph.facebook.com/fql?q={"posts":"SELECT actor_id,message,permalink,created_time,comments.count FROM stream WHERE source_id=me()","actors":"SELECT uid,name,pic_square,profile_url FROM user WHERE uid IN (SELECT actor_id FROM #posts)"}
在中可以完美地工作,但当您将其直接放在浏览器中时,您会得到:

{
        "error": {
        "message": "(#601) Parser error: unexpected '{' at position 0.",
        "type": "OAuthException"
    }
}
我错过了什么?Facebook在API中再次否决了某些内容? 我想使用GET(实际上在最后使用JSONP)执行FQL多查询,而不使用Javascript SDK


顺便说一下,我确信这不是授权/访问令牌问题。

urlcode参数
q
的值<代码>:,
#
是URL中的特殊字符。例如:

https://graph.facebook.com/fql?q=%7B%22posts%22%3A%22SELECT%20actor_id%2Cmessage%2Cpermalink%2Ccreated_time%2Ccomments.count%20FROM%20stream%20WHERE%20source_id%3Dme%28%29%22%2C%22actors%22%3A%22SELECT%20uid%2Cname%2Cpic_square%2Cprofile_url%20FROM%20user%20WHERE%20uid%20IN%20%28SELECT%20actor_id%20FROM%20%23posts%29%22%7D

如果您正在使用PHP,请使用以下内容:

$url = 'https://graph.facebook.com/fql?q=' . urlencode($my_fql_query);
您需要使用:


不要使用'q',使用参数名'querys'。

顺便说一句,我在同一url中遇到以下错误:{“error”:{“message”:“(#604)您的语句不可索引。WHERE子句必须包含一个可索引列。这些列在链接自的表中标记为*,”键入“:“OAuthException”}}是的,我也是,虽然我需要使用的真正查询与我作为示例给出的查询不同。奇怪的是,示例查询在graph API explorer中运行时没有出现此错误。无论如何,我真正的查询在正确地进行url编码后才能工作。我以前确实尝试过使用Javascript的URIEncode,但这还不够。使用“真实”URL编码-它可以工作。谢谢。根据,您应该使用的参数名称是
q
,而不是
querys
:“您可以向
/fql?q=query
发出
httpget
请求,其中
query
可以是单个fql查询或JSON编码的查询字典。”