Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Telling Whether A Tweet Is A Retweet Or Not?

Tags:

twitter

api

I'm using the Twitter API in order to pull tweets from specific users. I have it working exactly as I want, except for being able to tell whether or not a specific tweet is original from the user or if it is a retweet.

I'm using the following call: https://api.twitter.com/1/statuses/user_timeline.json?include_entities=true&include_rts=true&screen_name=philiprucker&count=1

When looking at the results, it appears that I should be able to pull retweeted from the results and it should return true or false. However, this is only returning the string retweet.

$url = "http://api.twitter.com/1/statuses/user_timeline.xml?include_entities=true&include_rts=true&screen_name=$screen_name&count=200" ;
$ch = curl_init($url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, TRUE);
$xml = curl_exec ($ch);
curl_close ($ch);

$twelement = new SimpleXMLElement($xml);
foreach ($twelement->status as $status) {
    $text = dbEscape(trim($status->text));
    $time = strtotime($status->created_at);
    $id = $status->id;
    $num_retweets = $status->retweet_count;
    $retweet = $status->retweeted;
    dbQuery("INSERT INTO `twitter` (`id`,`screen_name`,`time`,`text`,`hidden`, `numRetweets`, `retweet`) VALUES ('$id','$screen_name','$time','$text','n','$num_retweets','retweet')");
    // dbQuery("INSERT INTO `twitter` (`id`,`screen_name`,`time`,`text`,`hidden`) VALUES ('$id','$screen_name','$time','$text','n')");
}

This is the code doing what I describe. I believe all the relevant code is there. Any help would be greatly appreciated!

like image 276
mitchellwright Avatar asked Jan 17 '12 22:01

mitchellwright


2 Answers

You are specifically putting the string retweet into the table, not the value of $retweet.

like image 98
jcmeloni Avatar answered Sep 18 '22 05:09

jcmeloni


Quick clarifying question: are you looking to store whether a tweet has ever been retweeted, or are you looking to store whether the user making the request retweeted the tweet?

The "retweeted" boolean field attached to a status is perspectival to the user making the request -- it indicates whether the current user retweeted the tweet or not, not whether the tweet has been retweeted. A non-zero retweet_count would be a better indicator as to whether the tweet has been retweeted or not.

like image 24
Taylor Singletary Avatar answered Sep 21 '22 05:09

Taylor Singletary