我不确定我是否真的做得对,但从我在youtube上观看的教程中得到了一小段代码,不幸的是,那个人从来没有发过第2或第3部分所以只留下了他写的内容第一个视频。
我一直在尝试访问所有可用的PUBLIC帖子,并通过链接轻松访问这些帖子:https://graph.facebook.com/search?q=i通过了我的考试& type = post& locale = en_GB
它提供了似乎是一大堆信息,但我如何使用PHP将这种明显的JSON输出处理成可理解的信息?我已经在一个类似的网站上看到它在互联网上掀起波澜,并希望自己尝试一下。
这可以使用以下代码:
$fbquery = "https://graph.facebook.com/search?q=i hate my boss&type=post";
$fb = file_get_contents($fbquery, 'rb');
$fbarray = json_decode($fb, true);
echo $fbarray['message'];
或者我在哪里错了?请记住,它的公共信息可用并使用任何地址栏中的链接生成和输出,无需用户登录或使用访问令牌。
感谢您的帮助和赞赏!
戴夫。
答案 0 :(得分:0)
在json_decode之后你得到一个对象。
如果您执行$ fbarray->数据,您将获得一个对象数组。 循环每个对象并检查其类型。
喜欢
for(key in $fbarray->data){
$element = $fbarray->data[key]; // you get each element.
if($element->type =="photo") // check for different types
{
// display as photo.
echo '<img src="$element->picture">';
}
if($element->type =="status")
{
// display message.
echo $element->message;
}
}
您可以使用在线json编辑器(如jsonedtor)来获取树状视图。这有助于理解json的树结构。
答案 1 :(得分:0)
你在这里遇到了一些问题。 1)您应该对搜索字符串进行urlencode。其次,$fbarray
是一个对象。你不会得到一个项目。试试这段代码:
$str = "i hate my boss";
$str = urlencode($str);
$fbquery = "https://graph.facebook.com/search?q={$str}&type=post";
$fb = file_get_contents($fbquery, 'rb');
$fbarray = json_decode($fb, true);
foreach ($fbarray as $item) {
echo $item['message'];
}
要测试这样的公共查询,您可以将$fbquery
网址粘贴到浏览器的地址栏中,看看是否返回了数据。