使用cURL returning";从PHP进行FQL查询;“方法未实现”;

使用cURL returning";从PHP进行FQL查询;“方法未实现”;,php,facebook,curl,connect,facebook-fql,Php,Facebook,Curl,Connect,Facebook Fql,我正在使用Facebook的Facebook查询语言(FQL)在我已经知道某个用户的用户id后获取该用户的信息。当我在Firefox中输入以下URL时,它会为请求返回正确的XML: 用户名,其中uid=**' 即返回用户名 注意:请不要建议使用Graph API,因为事实上我将对Graph中尚未实现的东西(如网络)使用FQL,这只是一个简单的示例 但是,当我转到我网站上执行以下PHP代码的页面时: $url = 'http://api.facebook.com/method/fq

我正在使用Facebook的Facebook查询语言(FQL)在我已经知道某个用户的用户id后获取该用户的信息。当我在Firefox中输入以下URL时,它会为请求返回正确的XML:

用户名,其中uid=**'

即返回用户名

注意:请不要建议使用Graph API,因为事实上我将对Graph中尚未实现的东西(如网络)使用FQL,这只是一个简单的示例

但是,当我转到我网站上执行以下PHP代码的页面时:

        $url = 'http://api.facebook.com/method/fql.query?query=SELECT name FROM user WHERE uid=**********';
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        $response = curl_exec($ch);
        curl_close($ch);
        echo($response);
我明白了:

 Method Not Implemented

 Invalid method in request
这也不应该是身份验证问题,名称是公开的

为了进一步了解,当我输入任何格式错误的FQL请求时,PHP页面会正确地返回错误XML,就像在Firefox中输入URL一样。只有当我输入一个格式正确的FQL请求时,它才与我在Firefox中看到的有所不同,即它给出了上面的错误,甚至不是XML


有什么想法吗?谢谢

您是否正确编码了查询参数?尝试以下方法:

$query = 'SELECT name FROM user WHERE uid=**********';
$url = 'http://api.facebook.com/method/fql.query?query=' . rawurlencode($query);

或者您可以使用自动为您执行此操作的。

我不太了解与FQL相关的错误消息,但SQL查询应该是url转义(urlencode-)。也许这有助于纠正您的错误。

谢谢,我最近才开始使用PHP,尤其是cURL,但我并不知道这一点。