2010-08-13 59 views
1

我现在面临一个奇怪的问题,现在...Facebook的API返回的字符串怪异

我尝试使用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) 

有人曾经面对过这个吗? 我不明白为什么在返回的字符串中有一个“空”的书写...

谢谢!

编辑: 嗯......其实它比我还以为=/ 响应字符串的“空”的部分是在这里,因为我没有填则params的“回调”部分更坏,而是把null替代。 这样做,使Facebook的API自动返回一个现成的执行字符串,这意味着: 如果我有型“sayPlop”的回调函数,返回的字符串本来=>

"sayPlop(......)" 

所以,如果你不”不要在Facebook上这样做,只是不要指定“回调”参数,它是可选项(请参阅Facebook PHP SDK源代码)。

谢谢!

回答

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的函数来处理数据。

+0

它使我的方式来解决我的问题的答案,但没有这不需要(我编辑我的帖子,如果你有兴趣)。 无论如何。 – Shahor 2010-08-13 13:27:13