使用php for API 1.1读取Twitter JSON数据

时间:2013-06-13 07:40:32

标签: php api twitter

当API 1.0关闭时,我不得不疯狂地争抢我的所有Twitter Feed。花了一段时间,但我设法让GET状态/ user_timeline再次运行。现在我正在尝试使用搜索,但我无法读取结果。 JSON文件正在返回正确的数据。

这是我的PHP代码:

$code = $tmhOAuth->request('GET', $tmhOAuth->url('1.1/search/tweets'), array(
     'q' => '%23'.$tagzname,
     'since_id' => $num,
     'lang' => 'en',
     'count' => '2'));

 $response = $tmhOAuth->response['response'];

 var_dump(json_decode($response, true));
 echo "<br><br><br><br>";

 $json_output = json_decode($response, true);

 foreach($json_output as $tweets) {

   // $tmsgid   = $tweets['statuses']['metadata']['id_str'];
   $tmsgid   = $tweets['statuses']['id_str'];
   // $tmsgid   = $tweets['metadata']['id_str'];
   // $tmsgid   = $tweets['id_str'];
   echo 'Msg ID:' . $tmsgid . '<br>';

我无法获得Msg ID输出。我错过了什么?

JSON数据如下所示:

array(2) {
  ["statuses"]=>
  array(2) {
    [0]=>
    array(23) {
      ["metadata"]=>
      array(2) {
        ["result_type"]=>
        string(6) "recent"
        ["iso_language_code"]=>
        string(2) "en"
      }
      ["created_at"]=>
      string(30) "Thu Jun 13 07:19:30 +0000 2013"
      ["id"]=>
      float(3.4507795373608E+17)
      ["id_str"]=>
      string(18) "345077953736081409"
      ...

1 个答案:

答案 0 :(得分:2)

状态内部是一个包含两个条目的数组。所以你必须定义你想要展示的那个。

foreach($json_output as $tweets) {
    $tmsgid = $tweets['statuses'][0]['id_str'];
}

编辑: 第一个错了!

foreach($json_output['statuses'] as $tweets) {
    $tmsgid = $tweets['id_str'];
}

这应该是循环您的状态的正确方法。我不知道你的根数组中的第二个元素是什么。