-2

不确定我是否真的做对了,但从我在 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'];

还是我在某个地方出错了?请记住,其可用的公共信息和使用任何地址栏中的链接都将产生和输出,而无需用户登录或使用访问令牌。

感谢您的帮助和赞赏!

戴夫。

4

2 回答 2

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'];
}

要测试这样的公共查询,您可以将您的$fbqueryurl 粘贴到浏览器的地址栏中,然后查看是否返回数据。

于 2012-07-04T11:36:38.617 回答
0

在 json_decode 你得到一个对象。

如果你做 $fbarray->data 你会得到一个对象数组。循环每个对象并检查其类型。

喜欢

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;
  }
}

您可以使用像jsonedtor这样的在线 json 编辑器来获取树视图。这有助于理解 json 的树结构。

于 2012-07-04T11:09:39.753 回答