我现在面临一个奇怪的问题......
我正在尝试使用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源代码)。
谢谢!
答案 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的函数来处理数据。