Facebook API返回奇怪的字符串

时间:2010-08-13 13:12:50

标签: php facebook

我现在面临一个奇怪的问题......

我正在尝试使用Facebook API收集我的应用程序上的用户的一些信息,我可以,但返回的字符串很奇怪..

这就是我所拥有的:

    $params = array("method" => "fql.query",
            "query" => "SELECT first_name, last_name FROM user WHERE uid = $this->userId",
            "callback" => null);

        $result = json_decode($oFbSmarty->getFacebookApi()->api($params));

        $this->setFirstName($result->first_name);
        $this->setLastname($result->last_name);

        var_dump($result);

这是var_dump:

的结果
string 'null([{"first_name":"Alexandre","last_name":"\u30b4\u30c7\u3093\u30b7\u30aa"}]);' (length=80)

有人曾经面对这个吗? 我无法理解为什么在返回的字符串中有一个“null”写入...

谢谢!

编辑: 嗯......实际上它比我想象的更糟糕= / 响应字符串的“null”部分在这里,因为我没有填充参数的“回调”部分,而是将null放入。 这样做会使facebook api自动返回一个准备执行的字符串,这意味着: 如果我将类型“sayPlop”作为回调函数,则返回的字符串将为=>

"sayPlop(......)"

因此,如果你不想在Facebook上做,那就不要指定“回调”参数,它是optionnal(参见Facebook PHP SDK源代码)。

谢谢!

1 个答案:

答案 0 :(得分:0)

看起来它没有通过JSONP回调,我不熟悉Facebook API,但是将$ params更改为此,它将以不同的方式包装它。

$params = array("method" => "fql.query",
            "query" => "SELECT first_name, last_name FROM user WHERE uid = $this->userId",
            "callback" => 'myfunctionname');

我认为你必须定义一个名为myfunctionname的函数来处理数据。