0

当 API 1.0 关闭时,我不得不疯狂地争夺我所有的 Twitter 提要。花了一段时间,但我设法让 GET statuses/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"
      ...
4

1 回答 1

2

状态内部是一个包含两个条目的数组。因此,您必须定义要显示的内容。

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

编辑:第一个是错误的!

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

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

于 2013-06-13T09:00:52.620 回答