Я уже несколько дней стучу головой о стену, пытаясь сделать что-то, что должно быть так просто. Я пытаюсь использовать библиотеку 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, потому что он «поддерживает асинхронный», который звучит здорово, если я когда-либо решил использовать его, и потому, что он казался самым простым (т.е. наименьшим числом строк с моей стороны). Честно говоря, мне действительно больше нужно делать эту работу, чем понимать ее; Я могу понять, что все это значит позже.