几天来,我一直把头撞在墙上,试图做一些应该如此简单的事情。我正在尝试使用Jaison Mathai的EpiTwitter库从我的帐户中检索tweet。这是我的代码来获取我的推特:
<?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->响应是我想要的,因为在EpiTwitterJson中的EpiTwitterJson方法中有一行:$this->response = json_decode($this->responseText, 1);。就在这行之后,如果我是var_dump($this->response),我会得到我的推特和比var_dump($tjson)更少的数据。如果在我的print($this->response['status']['text'])中,我得到了一条很好的推文串,这正是我想要的。
我不太明白为什么$this->响应是在EpiTwitterJson类中设置的,但是$tjson->响应在我的代码中是空的。我已经看过了,看过了,但是我似乎找不到任何代码片段来获得这个库中的tweet。我认为这只是其中之一,它必须是如此明显和简单,以至于我的大脑拒绝接受它。显然,我可以在$tjson->responseText中爬行,但是我认为EpiTwitterJson类的全部意义是这样的,所以我就不必那么做了?对于我的问题,理想的答案将是压缩我的$tjson对象的代码,这样我就可以说
foreach(something as $tweet) //do stuff with the tweet第二个最好的答案是用另一个库编写代码。我之所以选择EpiTwitter库,只是因为它‘支持异步’--如果我决定使用它,听起来很酷,而且它似乎是最简单的(即我的代码行最少)。坦白地说,比起理解它,我更关心的是做这件事;以后我会弄明白这一切意味着什么。
发布于 2012-05-18 10:48:01
foreach($tjson->response as $post){
echo '<pre>';
var_dump($post);
echo '</pre>';
}这对我有用。
就像。你可以得到像$ post ' id‘那样的帖子id,或者用户名$post' user’
https://stackoverflow.com/questions/8875244
复制相似问题