你如何使用PHP SDK v4获得/ me / feed

时间:2014-12-01 21:22:42

标签: php facebook facebook-graph-api

我正在使用最新版本的Facebook PHP SDK v4.0.12。我正在尝试使用SDK获取我的Feed。我有SDK设置并正常工作。

我从这个示例代码开始:

// save the session
$_SESSION['fb_token'] = $session->getToken();

// create a session using saved token or the new one we generated at login
$session = new FacebookSession( $session->getToken() );

// graph api request for user data
$request = (new FacebookRequest( 
  $session, 
  'GET', 
  '/me' 
))->execute()->getGraphObject(GraphUser::className());

var_dump($request);

所有这些都很有效,我可以看到我的名字,年龄,性别等。该请求没有问题。

我想我应该能够使用相同的代码进行一次微妙的改变来获取我/我/ Feed。

// save the session
$_SESSION['fb_token'] = $session->getToken();

// create a session using saved token or the new one we generated at login
$session = new FacebookSession( $session->getToken() );

// graph api request for user data
$request = (new FacebookRequest( 
  $session, 
  'GET', 
  '/me/feed' 
))->execute()->getGraphObject(GraphUser::className());

var_dump($request);

但不幸的是,这不起作用。我得到一个空数组或正如其他人在这里所说,他们看到“对象(Facebook \ GraphUser)#334(1){[”backingData“:protected] => array(0){}}”。我发现的类似问题对我来说并没有完全回答。我尝试了一些东西,但没有太多运气。

更新#2 - 回复以下评论

我的登录链接如下所示:

echo '<a href="' . $helper->getLoginUrl( array( 'user_status,read_stream' ) ) 
. '" target="_top">Login</a>';

我已尝试注销,然后重新登录以希望重置权限。

我也试过这个:

// graph api request for user data
$request = (new FacebookRequest( 
  $session, 
        'GET', 
        '/me/feed' 
))->execute()->getGraphObject()->asArray();

这会输出一个空白数组。

1 个答案:

答案 0 :(得分:1)

由于我只在评论中回答,这是真实的:

您需要通过查看debugger中的访问令牌来确保read_stream获得正确授权。

顺便说一下,在创建任何带有read_stream的应用程序之前请先阅读此内容:https://developers.facebook.com/docs/facebook-login/permissions/v2.2#reference-read_stream