使用Facebook's PHP SDK, getGraphObject->asArray()返回一个对象


Using Facebook's PHP SDK, getGraphObject->asArray() returning an object?

我正在从Facebook的新PHP SDK调用对象,我正在创建如下对象,然而,对于2个单独的请求,我调用相同,它们不会回来相同。第一个请求返回为Array(如所希望的那样)。第二个,作为一个物体回来,我也不明白为什么。

$fb_session = new FacebookSession( $fb_session->getToken() );
// graph api request for user data
$fb_user_array = (new FacebookRequest( $fb_session, 'GET', '/me' ))->execute()->getGraphObject()->asArray();
echo "FB USER >> A" . $fb_user_array['id'];     // WORKS
echo "FB USER >> B" . $fb_user_array->id;       // FAILS
$picture_array = (new FacebookRequest( $fb_session, 'GET', '/me/picture?type=large&type=square&redirect=false' ))->execute()->getGraphObject()->asArray();
echo "FB PIC >> A " . $picture_array['url'];    // FAILS!!
echo "FB PIC >> A " . $picture_array->url;      // WORKS??

这是PHP SDK中的一个错误,现已修复。只要下载最新版本的4.0,你就不会再有这个问题了。:)

现在可以工作了。实际上,您帮助我找到了GET的正确语法,因为fb开发人员页面给出了一个产生错误的示例……(多有创意啊??)我知道任何新的API (fb或其他)都可能存在bug,但令人沮丧的是fb开发者页面中非常糟糕的API示例以及错误。很多时候我只是想知道他们是否测试过他们发布的内容。我不知道这背后的开发团队,但如果他们是高薪的facebook开发者,这至少是荒谬的。