How to Create Twitter Bot using OAuth

Twitter has announced to shut down the Basic Authentication API on August 31st and recommend Twitter application developers to migrate their apps to OAuth Authentication. What about bots? That’s the same. If you have bot created using Basic Authentication, then you should migrate your bot to OAuth. Here’s how, but first..

What is OAuth?

OAuth is a new authentication method that doesn’t use plain username & password to authenticate. OAuth uses a pair of tokens to check your credentials, therefore you don’t need to worry about leaking your password. These tokens are unique per user and per application. For further info about OAuth, check http://oauth.net/

So how?

First thing you need to do after creating bot account is creating an application. Go to http://dev.twitter.com/apps/new with your bot account and fill the form.

- Name: the application name will be shown after “via” in your tweets
- Application Type: You must choose ‘Browser’
- Default Access Type: Choose ‘Read and Write’
- Everything else you can fill any value

After created, go to you application detail. There you can see ‘Consumer Key’ and ‘Consumer Secret’ value. Save these keys.

Then click ‘My Access Token’ button in the right. You will see your ‘Access Token’ and ‘Access Token Secret’. You should save these keys too.

And now let’s go to the code!

You’ll need some libraries to utilize OAuth functions, so download Abraham’s TwitterOAuth library first. Copy the OAuth.php & twitteroauth.php files from downloaded library to your server, and create a new PHP file in the same directory.

And here’s the code:
this is the code I use for my bot @juru_doa ;)

require_once('twitteroauth.php');

define('CONSUMER_KEY', 'insert_your_consumer_key_here');
define('CONSUMER_SECRET', 'insert_your_consumer_secret_here');
define('ACCESS_TOKEN', 'insert_your_access_token_here');
define('ACCESS_TOKEN_SECRET', 'insert_your_access_token_secret_here');

$twitter = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_TOKEN_SECRET);
$twitter->host = "http://search.twitter.com/";
$search = $twitter->get('search', array('q' => 'semoga', 'rpp' => 20));

$twitter->host = "https://api.twitter.com/1/";
foreach($search->results as $tweet) {
	$status = 'Amiiiin RT @'.$tweet->from_user.' '.$tweet->text;
	if(strlen($status) > 140) $status = substr($status, 0, 139);
	$twitter->post('statuses/update', array('status' => $status));
}

What above code does?
After authenticating the OAuth tokens, it will do a search for ‘semoga’ keyword and grab the 20 most recent tweets. You can set another keyword for your bot. Then it will ReTweet each tweets and and ‘Amiiin’ before it.

To try whether you bot works or not, you can access your script from a browser. If the displays blank page, then your script might be work. Go check the timeline to make sure.

The last step is creating a cron job to run your script in certain times. How? That part is what you should do yourself :lol:

Tips: Don’t run your bot too often, like in every minutes, and don’t tweet too much, since there are limitation from Twitter.

Discuss about Twitter Bot here

33 thoughts on “How to Create Twitter Bot using OAuth

  1. Hii..
    btw,
    Then click ‘My Access Token’ button in the right. You will see your ‘Access Token’ and ‘Access Token Secret’. You should save these keys too.

    itu di kanan sebelah mana?ko saya ngga nemu ya? :) yg ada cuma consumer key+consumer secret?

  2. dear …

    great post guys ..
    but can i put your script to set with cron jobs (i run with curl / CLI[command line interface] )

    big thanks in advance

  3. Pingback: » Auto Retweet Bot for Twitter - Sandalian.com

  4. “Copy the OAuth.php & twitteroauth.php files from downloaded library to your server
    what the mean of server here?can u help me? i’m confused on that, but i wanna learn. however, i’m a newbie. :) )

  5. Kok ga jalan ya.. udah di echo biar yakin result nya keluar apa nggak, ternayta keluar.. tapi pas cek di time line ga ada update apa2.. pdhal ga ada warning ato error.. :o

  6. does this script have a limitation only for ReTweet? how about if i wanna make a bot that can reply (not RT) or quote tweet. I want to make a bot that teach people not to abuse RT. So bot with RT isnt suitable for my bot.

    the plan is not about RT-ing keyword’s search result like “semoga” you showed above but everytime someone RT with editing (RT abusing), my bot will come up and tell (e.g. by normal reply or quote tweet) not to use RT for replying tweets.

    is it possible?
    thx

  7. Hellow,

    I have used this example for a twitterbot. I have make the pages so as in this example and everything on Twitter.com, but when i start the page i see a blank page and on twitter i do not see any of tweet what i have send.

    Some one who can help us? first i wil start to send the basis info of this example before a shall rewrite them in the website.

  8. Pingback: How to Generate a Twitter Bot

Leave a Reply

Your email address will not be published. Required fields are marked *

Connect with Facebook

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>