0
$queries = '{"query1":"SELECT pid, src, link, caption, like_info, created FROM photo WHERE aid in ( SELECT aid FROM album WHERE owner = me() AND type = \"profile\" AND name = \"Profile Pictures\" ORDER BY created ASC LIMIT 1)","query2":"SELECT pid, src, link, caption, created, like_info FROM photo WHERE aid in ( SELECT aid FROM album WHERE owner = me() AND type = \"profile\" AND name = \"Profile Pictures\" ORDER BY created DESC LIMIT 1)"}';    
$multiquery = "https://api.facebook.com/method/fql.multiquery?queries=" . urlencode($queries) . "&format=json&" . $access_token;
$res = json_decode(file_get_contents($multiquery), TRUE);

但是当执行两个单个查询时,它工作正常。这里有什么问题?

我只是想获取第一张和最后一张个人资料照片

4

1 回答 1

1

几点评论:

最好的方法是使用PHP SDK而不是file_get_contents.

您正在使用已弃用的旧 REST API url。您应该使用 Graph API 网址:https://graph.facebook.com/fql?q=

您的$access_token变量是否包含&access_token=查询字符串的一部分?

最后,为了让您的查询保持直截了当,我发现最好的方法是将它们添加为数组的元素,其中查询名称作为键,例如:$fql['query1'] = 'SELECT ...'然后使用json_encode(preg_replace('/\s+/', ' ', $fql))将它们组合成无错误的 json。

于 2012-10-08T20:04:41.230 回答