Twitter API не работает с циклом foreach в PHP

0

Я не могу получить цикл foreach для отображения любых данных из twitter api

См. Код ниже. Однако он отображает данные в массиве print_r.

благодарю вас за ваше время заранее

     ini_set('display_errors', 1);
     require_once('TwitterAPIExchange.php');

 /** Set access tokens here - see: https://dev.twitter.com/apps/ **/
  $settings = array(
      'oauth_access_token' => "*******",
       'oauth_access_token_secret' => "*******",
       'consumer_key' => "********",
       'consumer_secret' => "*******"
      );


       /** Perform a GET request and echo the response **/
       /** Note: Set the GET field BEFORE calling buildOauth(); **/
       $url = 'https://api.twitter.com/1.1/search/tweets.json';
        $getfield = '?q=love+you&count=20';
        $requestMethod = 'GET';
        $twitter = new TwitterAPIExchange($settings);
        $string = json_decode($twitter->setGetfield($getfield)
         ->buildOauth($url, $requestMethod)
         ->performRequest(),$assoc = TRUE);
        if($string["errors"][0]["message"] != "") {echo "<h3>Sorry, there 
          was a problem.</h3><p>Twitter returned the following error 
       message:</p><p><em>".$string[errors][0]["message"]."
       </em></p>";exit();}


    foreach($string as $tweets) {

      echo $tweets['name'] . '<br />';

    }

    cannot get the foreach loop to display any data from the twitter api

См. Код ниже. Однако он отображает данные в массиве print_r.

благодарю вас за ваше время заранее

 /**here is the a sample of the array data but when the foreach loop is 
 added the screen is blank no error is dispayed no data is displayed**/ 

Array
(
    [statuses] => Array
    (
        [0] => Array
            (
                [metadata] => Array
                    (
                        [iso_language_code] => en
                        [result_type] => recent
                    )

                [created_at] => Thu Mar 05 23:16:36 +0000 2015
                [id] => 573623174589472768
                [id_str] => 573623174589472768
                [text] => @TheVampsband #TheVampsVIP Please choose me and 
    @Charlotte_94x to winShe hit tweet limitWe love you so much! We
     beg89
                [source] => Twitter for iPhone
  • 0
    Если этот код отображает что-то в print_r() , приложите образец. Кстати, в вашей функции json_decode() измените второй параметр на TRUE вместо $assoc = TRUE . Все нормально, но не обязательно.
  • 0
    хорошо прикрепил небольшой пример, но массив отображает все данные от пользователя
Показать ещё 2 комментария
Теги:
arrays
foreach
twitter

1 ответ

0
Лучший ответ

Итак, прежде всего, вы перебираете неправильный массив. Массив, который вы ищете, находится под индексом statuses, поэтому измените свой цикл на:

foreach($string['statuses'] as $tweets) {
    echo $tweets['name'] . '<br />';
}

Посмотрите на свой print_r() и тщательно проверьте, как строятся массивы. Например, если вы хотите напечатать имя каждого автора твита, вам следует изменить yor echo в foreach, чтобы:

echo $tweets['user']['name'] . '<br />';

потому что выходной массив имеет структуру

array(..., 'user' => array('name' => 'Example name', ...));
  • 0
    нет не работал пустой экран
  • 0
    Тщательно анализируйте выходной массив. Каждый подмассив должен быть доступен по индексу, чтобы получить его значение.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню