Php 如何转换facebook图形JSON输出?

Php 如何转换facebook图形JSON输出?,php,json,facebook-graph-api,Php,Json,Facebook Graph Api,不确定我是否真的做对了,但从我在youtube上观看的教程中得到了一小段代码,不幸的是,这个家伙从未发布过第2部分或第3部分,所以只剩下他在第一个视频中所写的内容 我一直在尝试访问所有可用的公共帖子,并看到了通过链接访问这些帖子的简单方法:通过考试&type=post&locale=en_GB 它提供了大量的信息,但是我如何使用PHP将这些明显的JSON输出处理成可理解的信息呢?我曾在一个类似的网站上看到过,这个网站在互联网上掀起了波澜,我想自己尝试一下 使用以下代码是否可以执行此操作: $fb

不确定我是否真的做对了,但从我在youtube上观看的教程中得到了一小段代码,不幸的是,这个家伙从未发布过第2部分或第3部分,所以只剩下他在第一个视频中所写的内容

我一直在尝试访问所有可用的公共帖子,并看到了通过链接访问这些帖子的简单方法:通过考试&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'];
还是我在某个地方出了问题?请记住,其可用的公共信息和使用任何地址栏中的链接将生成和输出,而无需用户登录或使用访问令牌

谢谢你的帮助,非常感谢


Dave。

在json_解码后,您会得到一个对象

如果执行$fbarray->data,将获得一个对象数组。 循环每个对象并检查其类型

for(输入$fbarray->data){
$element=$fbarray->data[key];//您可以得到每个元素。
if($element->type==“photo”)//检查不同的类型
{
//显示为照片。
回声“图片”>;
}
如果($element->type==“status”)
{
//显示消息。
echo$element->message;
}
}

您可以使用联机json编辑器来获取树视图。这有助于理解json的树结构。

您在这里遇到了几个问题。1)您应该对搜索字符串进行URL编码。其次,
$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
url粘贴到浏览器的地址栏中,查看是否返回了数据。

如果您不确定变量或对象中包含的数据结构,请使用var\u dump/print\r。如果这仍然不能帮助您理解如何访问各个部分关于数据,那么请先看一些PHP初学者教程。您好,是的,这很好,但仍然不确定之后该做什么,因为显示的信息如您所说的那样像一棵树,所以说我想回显帖子中的id或消息,我如何从$element中获取它?更新的答案,看看是否有帮助。这就是brilliant并在一定程度上起作用,但是如果你在进入地址栏并按enter键时查看它,它会分成几个部分,我尝试使用$fbarray->data,但不起作用,所以我尝试了$fbarray['data']它获得了一些信息,但仍然有部分是独立的数组,你知道我将如何继续这些吗?正如@CBroe建议的,你可以使用
print\r($fbarray)
查看返回数据的完整表示形式。这将向您展示如何在PHP中获取该变量。例如,您可以将上面的
echo
语句更改为:
printf(“%s表示为%s”,$item['from']['name'],$item['message']);
$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'];
}