我如何从新的twitter api 1.1获得推文?

时间:2014-05-19 19:24:32

标签: php json twitter laravel

我刚刚为Laravel 4实现了https://github.com/thujohn/twitter-l4,它基本上都是一个数组 搜索主题标签的推文。

它似乎正在起作用,我认为有些东西不起作用。

我得到一个没有错误的空白屏幕,这意味着一个正号。

这是我的代码。

PHP:

$tweets = Twitter::getSearch(array('q' => 'secretsocial', 'count' => 100, 'format' => 'array'));
var_dump($tweets);

这段代码基本上给了我一个json数组:

array (size=2)
  'statuses' => 
    array (size=20)
      0 => 
        array (size=24)
          'metadata' => 
            array (size=2)
              'result_type' => string 'recent' (length=6)
              'iso_language_code' => string 'en' (length=2)
          'created_at' => string 'Fri May 16 14:28:14 +0000 2014' (length=30)
          'id' => int 467310562603331586
          'id_str' => string '467310562603331586' (length=18)
          'text' => string 'On that #merch #grind. #spotify #swag just got shipped in. #secretsocial #free #leeds #leedsuni… http://t.co/67phqjeg5W' (length=121)
          'source' => string '<a href="http://instagram.com" rel="nofollow">Instagram</a>' (length=59)
          'truncated' => boolean false
          'in_reply_to_status_id' => null
          'in_reply_to_status_id_str' => null
          'in_reply_to_user_id' => null
          'in_reply_to_user_id_str' => null
          'in_reply_to_screen_name' => null
          'user' => 
            array (size=40)
              'id' => int 167993141
              'id_str' => string '167993141' (length=9)
              'name' => string 'Maral Erol' (length=10)
              'screen_name' => string 'liaaca' (length=6)
              'location' => string 'Leeds / San Diego' (length=17)
              'description' => string 'Music/Culture/Entertainment Enthusiast.' (length=39)
              'url' => string 'http://t.co/FL3uuA6QcN' (length=22)
              'entities' => 
                array (size=2)
                  'url' => 
                    array (size=1)
                      'urls' => 
                        array (size=1)
                          0 => 
                            array (size=4)
                              'url' => string 'http://t.co/FL3uuA6QcN' (length=22)
                              'expanded_url' => string 'http://linkd.in/R70tjB' (length=22)
                              'display_url' => string 'linkd.in/R70tjB' (length=15)
                              'indices' => 
                                array (size=2)
                                  0 => int 0
                                  1 => int 22
                  'description' => 
                    array (size=1)
                      'urls' => 
                        array (size=0)
                          empty

所以我写了这个:

if(isset($tweets->statuses) && is_array($tweets->statuses)) {
        if(count($tweets->statuses)) {
            foreach($tweets->statuses as $tweet) {
                echo $tweet->text;
            }
        }
        else {
            echo 'The result is empty';
        }
    }

我在页面上没有错误。有人能指出我正确的方向吗?

干杯

1 个答案:

答案 0 :(得分:4)

由于每个$tweet都是一个数组,因此您应该使用$tweet['text']代替$tweet->text

foreach($tweets->statuses as $tweet) {
    echo $tweet['text'];
}

同样$tweets->statuses应为$tweets['statuses']