我刚刚使用JavaScript SDK将实现的Facebook connect放在我的网站上。现在我想处理一个 fql 查询。
所以我有两个问题:
-
是否可以只使用 JavaScript fql 作为 "
SELECT id, name FROM user WHERE uid IN (SELECT uid1 FROM friends WHERE uid2=me())
" ? -
因为当我使用 facebook 文档尝试一些 PHP SDK 代码时
.PHP:
$app_id = 'MY_ID';
$app_secret = 'MY_APP_SECRET';
$my_url = 'POST_AUTH_URL';
$code = $_REQUEST["code"];
$_REQUEST["code"]
通常无法识别,我不知道什么是"'POST_AUTH_URL'
",因为我没有使用PHP SDK来处理Facebook-connect。有人有想法吗?
使用 method: 'fql.query'
是已弃用的 REST API 的一部分。
恕我直言,一种更好的、面向未来的方法是针对图形 API 发送查询:
FB.api("/fql?q={your urlencoded query}", callback() { … } );
使用 JavaScript SDK,您可以轻松执行 FQL 查询 -
FB.api(
{
method: 'fql.query',
query: 'SELECT name FROM user WHERE uid=me()'
},
function(response) {
alert('Your name is ' + response[0].name);
}
);
在执行任何查询之前,不要忘记请求所需的所有权限...
参考资料 - https://developers.facebook.com/docs/reference/javascript/
我还不能发表评论,但要澄清这个有用的答案; 对我有用的是格式化 FQL API 调用,就像我使用 {fields: "ex1,ex2"} 进行图形 API 调用一样:
var fqlRequest = "SELECT name FROM user WHERE uid = me()";
FB.api("/fql",{q:fqlRequest}, function(response){
// do cool stuff with response here
});
请注意,我不必对字符串进行 URL 编码,它对我来说效果很好(我用过 encodeURI(fqlRequest)
之前,它返回了一个unexpected %
错误)。
如果使用文字,还要记住引用文字:
var id = "1234567890";
var fqlRequest = "SELECT name FROM user WHERE uid = ' " + id + " ' ";