2012-01-16 2 views
1

Я уже несколько дней стучу головой о стену, пытаясь сделать что-то, что должно быть так просто. Я пытаюсь использовать библиотеку EpiTwitter от Jaison Mathai для извлечения твитов из моей учетной записи. Вот мой код, чтобы получить мои твиты:Получить твиты от EpiTwitterJson

<?php $twitterObj = new EpiTwitter($__TWITTER['ConsumerKey'], $__TWITTER['ConsumerSecret'],$__TWITTER['MyAccessToken'],$__TWITTER['MyAccessTokenSecret']); 
$twitterInfo= $twitterObj->get_accountVerify_credentials(); 
$twitterInfo->response; 
//^This part works fine, I can get my user info and profile pic and whatnot 
$username = $twitterInfo->screen_name; 
$tjson = $twitterObj->get('statuses/user_timeline.json', array("screen_name"=>$username)); 

Насколько я могу сказать,^это также работает как положено. Если я var_dump ($ tjson), я могу видеть твиты, к которым я хочу получить доступ, среди ОГРОМНОГО беспорядка других данных.

Мой вопрос сводится к следующему: с этого момента, как я могу просто распечатать каждый возвращенный твит? Вот что я пытался до сих пор:

foreach($tjson as $tweet) print($tweet) 
//^ Throws IllegalArgumentException, "Not an array or object" 
foreach($tjson->responseText as $tweet) print($tweet) 
//^ Warning: illegal argument. Doesn't print anything 

print_r($tjson->response) //Prints NULL 

Я думал, что $ tjson-> ответ был бы то, что я хочу, потому что в методе __get в EpiTwitterJson, есть строка: $this->response = json_decode($this->responseText, 1);. Сразу после этой строки, если я var_dump($this->response), я получаю свои твиты вместе с немного меньше данных, чем var_dump ($ tjson) раньше. Если на той же строке я print($this->response['status']['text']), я получаю красивую строку моего твита, и именно этого хочу.

Почему я не совсем понимаю, почему $ this-> response задается внутри класса EpiTwitterJson, но $ tjson-> response имеет NULL в моем коде. Я посмотрел, посмотрел и посмотрел, но я не могу найти фрагменты кода, чтобы получить твиты с этой библиотекой. Я думаю, что это одна из тех вещей, которые должны быть настолько очевидными и простыми, что мой мозг отказывается принять это. Очевидно, я мог бы просканировать через $ tjson-> responseText, но я думал, что весь класс EpiTwitterJson был таким, что мне не нужно было это делать? идеальный ответ на мой вопрос будет код сводиться мой объект $ tjson, так что я могу сказать

foreach(something as $tweet) //do stuff with the tweet 

Второй лучший ответ будет код, чтобы сделать это с другой библиотекой. Я выбрал только EpiTwitter lib, потому что он «поддерживает асинхронный», который звучит здорово, если я когда-либо решил использовать его, и потому, что он казался самым простым (т.е. наименьшим числом строк с моей стороны). Честно говоря, мне действительно больше нужно делать эту работу, чем понимать ее; Я могу понять, что все это значит позже.

ответ

1
foreach($tjson->response as $post){ 
    echo '<pre>'; 
    var_dump($post); 
    echo '</pre>'; 
} 

это работает для меня.

например. u может получить идентификатор сообщения типа $ post ['id'] или имя пользователя $ post ['user'] ['name']

Смежные вопросы