Setting up Twitter API, getting the last few Tweets Setting up Twitter API, getting the last few Tweets jquery jquery

Setting up Twitter API, getting the last few Tweets


So you REALLY don't want to do this client-side anymore. (Just went through numerous docs, and devs suggest to do all oAuth server-side)

What you need to do:

First: sign up on https://dev.twitter.com, and make a new application.

Second: NOTE: Your Consumer Key / Secret along with Access Token / Secret

Third: Download Twitter OAuth Library (In this case I used the PHP Library https://github.com/abraham/twitteroauth , additional libraries located here: https://dev.twitter.com/docs/twitter-libraries)

Fourth: (If using PHP) Make sure cURL is enabled if your running on a LAMP here's the command you need:

sudo apt-get install php5-curl

Fifth: Make a new PHP file and insert the following: Thanks to Tom Elliot http://www.webdevdoor.com/php/authenticating-twitter-feed-timeline-oauth/

<?phpsession_start();require_once("twitteroauth/twitteroauth/twitteroauth.php"); //Path to twitteroauth library you downloaded in step 3$twitteruser = "twitterusername"; //user name you want to reference$notweets = 30; //how many tweets you want to retrieve$consumerkey = "12345"; //Noted keys from step 2$consumersecret = "123456789"; //Noted keys from step 2$accesstoken = "123456789"; //Noted keys from step 2$accesstokensecret = "12345"; //Noted keys from step 2function getConnectionWithAccessToken($cons_key, $cons_secret, $oauth_token, $oauth_token_secret) {  $connection = new TwitterOAuth($cons_key, $cons_secret, $oauth_token, $oauth_token_secret);  return $connection;}$connection = getConnectionWithAccessToken($consumerkey, $consumersecret, $accesstoken, $accesstokensecret);$tweets = $connection->get("https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=".$twitteruser."&count=".$notweets);echo json_encode($tweets);echo $tweets; //testing remove for production   ?>

And boom, you're done. I know this isn't a pure js solution but again reading through the new Twitter API 1.1 docs they REALLY don't want you to do this client-side. Hope this helps!


How to get last few tweets of user with core PHP functionality only (no CURL or Twitter oAuth library needed):

  1. Register your app/webpage https://apps.twitter.com (You may need to verify your personal account mobile number too)

  2. Note Consumer Key and Consumer Secret

  3. PHP Code:

    // auth parameters$api_key = urlencode('REPLACEWITHAPPAPIKEY'); // Consumer Key (API Key)$api_secret = urlencode('REPLACEWITHAPPAPISECRET'); // Consumer Secret (API Secret)$auth_url = 'https://api.twitter.com/oauth2/token'; // what we want?$data_username = 'Independent'; // username$data_count = 10; // number of tweets$data_url = 'https://api.twitter.com/1.1/statuses/user_timeline.json?tweet_mode=extended';// get api access token$api_credentials = base64_encode($api_key.':'.$api_secret);$auth_headers = 'Authorization: Basic '.$api_credentials."\r\n".                'Content-Type: application/x-www-form-urlencoded;charset=UTF-8'."\r\n";$auth_context = stream_context_create(    array(        'http' => array(            'header' => $auth_headers,            'method' => 'POST',            'content'=> http_build_query(array('grant_type' => 'client_credentials', )),        )    ));$auth_response = json_decode(file_get_contents($auth_url, 0, $auth_context), true);$auth_token = $auth_response['access_token'];// get tweets$data_context = stream_context_create( array( 'http' => array( 'header' => 'Authorization: Bearer '.$auth_token."\r\n", ) ) );$data = json_decode(file_get_contents($data_url.'&count='.$data_count.'&screen_name='.urlencode($data_username), 0, $data_context), true);// result - do what you wantprint('<pre>');print_r($data);

Tested with XAMPP for Windows and Centos6 default installation (PHP 5.3)

Most probable problem with this might be that openssl is not enabled in php.ini

To fix check if extension=php_openssl.dll or extension=php_openssl.so line is present and uncommented in php.ini


Actually twitter has many restrictions, as there is lot of contest from companies like Nike and others. The reading of tweet is limited in the sense that if you are reading through the latest API its actually a bit behind time.

They have also controlled the DM delay which means you cannot DM instantly even if you do, the other party will only receive after X amount of time. If you do through script, and even if you try to DM a lot from one single ip twitter will simply BLOCK you.