2017-07-28 73 views
0

我试图通过一个循环获得帖子消息和id,最终我会想要获得帖子的喜欢,但我还没有,所以一次一个步骤。Facebook的api:迭代通过帖子

我得到我的网页的名称,网址,图片,说明,粉丝和帖子。 然后我继续显示它们。 帖子显然是一个Stdclass对象,所以粗略显示它print_r的作品。

FacebookSession::setDefaultApplication('app','appsecret'); 


$session = FacebookSession::newAppSession(); 


$request = new FacebookRequest($session, 'GET', '/myapp?fields=id,name,about,likes,link,,posts'); 
$response = $request->execute(); 

$content = $response->getGraphObject()->asArray(); 


?> 

<h1><?= $content['name'] ?></h1> 

<p><img src="http://graph.facebook.com/<?= $content['id'] ?>/picture?width=180&height=180" /></p> 
<p>About: <?= $content['about'] ?></p> 

<p>fans: <?= $content['likes'] ?></p> 

<p>url: <?= $content['link'] ?></p> 

<p>posts: <?= print_r($content['posts']) ?></p> 

所以,我试图做一个循环

foreach($content['posts'] as $post){ 
    echo $post['id']; 
    echo $post['message'] 
} 

不过,我得到的ID和消息indefined指数的误差,虽然我大致知道为什么,我一直没能解决这个问题。在帖子

print_r的输出是这样的:

StdClass Object ([data] => Array ([0] => stdClass Object ([message] => postmessage. [created_time] => 2017-06-28T13:00:00+0000 [id] => a_post_id) 

感谢您的帮助。

+2

尝试这样的:'的foreach($内容[ '帖子'] - >数据$ POST){'(你的阵列是一个属性,在你的对象中称为“数据”) – Kaddath

+0

哈哈猜我认为是你张贴的时间:-)非常感谢! –

回答

0

想通自己,但Kaddath还提供了正确的方法:

foreach ($content['posts']->data as $posts) { 

    echo "<p>posts id: $posts->id</p>"; 

    echo "<p>posts message: $posts->message</p>"; 
}