我一直在靠墙撞墙几天,试图做一些应该这么简单的事情。我正在尝试使用Jaison Mathai的EpiTwitter库从我的帐户中检索推文。这是我获取推文的代码:
<?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-&gt;响应将是我想要的,因为在EpiTwitterJson的__get方法中,有一行:
$this->response = json_decode($this->responseText, 1);
。在此行之后,如果我var_dump($this->response)
,我之前得到的推文以及比var_dump($ tjson)更少的数据。如果在同一行我print($this->response['status']['text'])
,我会得到一条很好的推文,这正是我想要的。
我不太明白为什么$ this-&gt;响应是在EpiTwitterJson类中设置的,但$ tjson-&gt;响应在我的代码中为NULL。我看了看,看了看,但我似乎无法找到任何代码片段来专门获得这个库的推文。我认为这只是必须如此明显和简单的事情之一,我的大脑拒绝接受它。 显然我可以抓住$ tjson-&gt; responseText,但我认为EpiTwitterJson类的重点是如此,我不必这样做?我的问题的理想答案将是我的$ tjson对象的代码,所以我可以说
foreach(something as $tweet) //do stuff with the tweet
第二个最佳答案是使用另一个库执行此操作的代码。我只选择了EpiTwitter lib,因为它“支持async”,如果我决定使用它,听起来很酷,而且因为它看起来最简单(即我自己的代码最少)。坦率地说,我真的更关心做这项工作而不是理解它;我可以弄清楚以后一切意味着什么。
答案 0 :(得分:1)
foreach($tjson->response as $post){
echo '<pre>';
var_dump($post);
echo '</pre>';
}
这适合我。
例如。你可以像$ post ['id']或者用户名$ post ['user'] ['name']
获得帖子的ID