Я несколько дней бился головой о стену, пытаясь сделать что-то, что должно быть настолько простым.Я пытаюсь использовать библиотеку EpiTwitter от Jaison Mathai для получения твитов из моей учетной записи.Вот мой код для получения моих твитов:
<?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-> установлен внутри класса EpiTwitterJson, а ответ $ tjson-> в моем коде равен NULL.Я посмотрел и посмотрел и посмотрел, но я не могу найти какие-либо фрагменты кода, чтобы получить твиты именно с этой библиотекой.Я думаю, что это просто одна из тех вещей, которые должны быть настолько очевидными и простыми, что мой мозг отказывается это принять.Очевидно, что я мог просто пролистать $ tjson-> responseText, но я думал, что весь смысл класса EpiTwitterJson в том, что мне не пришлось бы это делать? идеальным ответом на мой вопрос будет код, чтобы свести мой объект $ tjson, так что я могу сказать,
foreach(something as $tweet) //do stuff with the tweet
Вторым лучшим ответом будет код, чтобы сделать это с другой библиотекой.Я выбрал библиотеку EpiTwitter только потому, что она «поддерживает асинхронность», что звучит круто, если я когда-нибудь решу ее использовать, и потому что она кажется самой простой (то есть с наименьшим количеством строк кода с моей стороны).Откровенно говоря, я действительно беспокоюсь о том, чтобы сделать эту работу, а не понять ее;Я могу понять, что все это значит позже.