我正在尝试使用Graph API从页面获取Feed,但该Feed还包含“故事”,例如“Page like a photo”以及状态,并且该故事没有任何消息。
由于该空消息,循环运行3次(如定义的那样),但如果有一个'故事',它只返回2.
要点:是否有任何“类型”或某些内容可以过滤掉这些故事?我希望免费提供用户操作产生的故事,特别是“喜欢帖子”的事情。
这是我的代码:
<?php
ob_start();
require_once('fb-sdk/src/facebook.php');
$config = array();
$config['appId'] = '111111111';
$config['secret'] = '111111111111111111111111';
$config['fileUpload'] = false; // optional
$facebook = new Facebook($config);
$pageid = "11111111111111";
$pagefeed = $facebook->api("/" . $pageid . "/posts");
$page_profile = $facebook->api("/" . $pageid . "?fields=name");
$pagename = $page_profile['name'];
echo "<div class=\"fb-feed\">";
$i = 0;
foreach ($pagefeed['data'] as $post) {
if ($post['type'] == 'status' || $post['type'] == 'link' || $post['type'] == 'photo') {
if (!empty($post['message'])) {
echo "<div class=\"fb-update\">";
echo "<div class=\"fb-pic-name\"><img src=\"https://graph.facebook.com/" . $pageid . "/picture\">" . "<span>" . $pagename . "</span></div><p>";
if (strlen($post['message']) > 70) {
echo preg_replace('/\s+?(\S+)?$/', '', substr($post['message'], 0, 70)) . "…";
} else {
echo $post['message'];
}
echo "<a href=\"https://www.facebook.com/" . $post['id'] . "\" target=\"_blank\"> See More</a></p>";
echo "<span class=\"date\">" . date("F, jS, g:i a", (strtotime($post['created_time']))) . "</span>" . "<a class=\"comment\" href=\"https://www.facebook.com/" . $post['id'] . "\" target=\"_blank\">Comment</a>";
echo "</div>";
}
$i++;
if ($i == 3) {
break;
}
}
}
echo "</div>";
ob_flush();
?>
感谢任何帮助。
答案 0 :(得分:0)
这就是我在JS中处理这种情况的方法:
var txt = response.data[i].message;
if(txt==null){
txt = response.data[i].story;
}
alert(txt);
在你的情况下,你可以继续&#34;循环如果&#39;消息&#39;是空的。