我使用Facebook的Facebook查询语言(FQL)来获取用户的信息,一旦我知道了他的用户ID。当我在Firefox中输入以下URL时,它会为请求返回正确的XML:
http://api.facebook.com/method/fql.query?query=SELECT名称来自用户WHERE uid = * * '
即返回用户名。
注意:请不要建议使用Graph API,因为我实际上将FQL用于未在Graph中实现的东西,就像网络一样,这只是一个简单的例子。
但是,当我访问我的网站上执行以下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。
有什么想法吗?谢谢。
答案 0 :(得分:0)
您是否正确编码了查询参数?尝试类似:
$query = 'SELECT name FROM user WHERE uid=**********';
$url = 'http://api.facebook.com/method/fql.query?query=' . rawurlencode($query);
或者您可以使用Facebook PHP SDK自动为您执行此操作。
答案 1 :(得分:0)
我对与FQL相关的错误消息了解不多,但SQL查询应该是url转义的(urlencode - http://php.net/manual/en/function.urlencode.php)。也许这可以帮助你解决错误。