使用 facebook javascript sdk 处理 fql 查询



我刚刚使用JavaScript SDK将实现的Facebook connect放在我的网站上。现在我想处理一个 fql 查询。

所以我有两个问题:

  1. 是否可以只使用 JavaScript fql 作为 "SELECT id, name FROM user WHERE uid IN (SELECT uid1 FROM friends WHERE uid2=me())" ?

  2. 因为当我使用 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 + " ' ";

最新更新