PHPackages                             rummykhan/twitter - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. rummykhan/twitter

ActiveLibrary[API Development](/categories/api)

rummykhan/twitter
=================

Twitter API for Laravel

1.0.0(10y ago)1461MITPHPPHP &gt;=5.4.0

Since Feb 24Pushed 10y ago1 watchersCompare

[ Source](https://github.com/rummykhan/twitter-laravel)[ Packagist](https://packagist.org/packages/rummykhan/twitter)[ RSS](/packages/rummykhan-twitter/feed)WikiDiscussions master Synced 3w ago

READMEChangelogDependencies (2)Versions (2)Used By (0)

Twitter
=======

[](#twitter)

Twitter API for Laravel 4/5

You need to create an application and create your access token in the [Application Management](https://apps.twitter.com/).

[![Build Status](https://camo.githubusercontent.com/9b4428e685a469a47b60595b2a5498c2f3348a5032aec760970d89b5dfbbd6cb/68747470733a2f2f7472617669732d63692e6f72672f7468756a6f686e2f747769747465722e706e673f6272616e63683d6d6173746572)](https://travis-ci.org/thujohn/twitter)

Installation
------------

[](#installation)

Add `thujohn/twitter` to `composer.json`.

```
"thujohn/twitter": "~2.0"

```

Run `composer update` to pull down the latest version of Twitter.

Or run

```
composer require thujohn/twitter

```

Now open up `/config/app.php` and add the service provider to your `providers` array.

```
'providers' => [
	'Thujohn\Twitter\TwitterServiceProvider',
]
```

Now add the alias.

```
'aliases' => [
	'Twitter' => 'Thujohn\Twitter\Facades\Twitter',
]
```

Upgrading from 1.x.x
--------------------

[](#upgrading-from-1xx)

The package now requires PHP &gt;= 5.4.0

Facade has changed (Thujohn\\Twitter\\Facades\\Twitter)

Config file has been updated (debug, UPLOAD\_URL, ACCESS\_TOKEN\_URL, REQUEST\_TOKEN\_URL)

set\_new\_config() has been renamed reconfig()

Configuration (Laravel 4)
-------------------------

[](#configuration-laravel-4)

Run `php artisan config:publish thujohn/twitter` and modify the config file with your own informations.

```
/app/config/packages/thujohn/twitter/config.php

```

Also, make sure to remove the env in the config file and replace it with your information.

Configuration (Laravel 5)
-------------------------

[](#configuration-laravel-5)

Run `php artisan vendor:publish` and modify the config file with your own information.

```
/config/ttwitter.php

```

With Laravel 5, it's simple to edit the config.php file - in fact you don't even need to touch it! Just add the following to your .env file and you'll be on your way:

```
TWITTER_CONSUMER_KEY =
TWITTER_CONSUMER_SECRET =
TWITTER_ACCESS_TOKEN =
TWITTER_ACCESS_TOKEN_SECRET =

```

Special parameter
-----------------

[](#special-parameter)

```
format : object|json|array (default:object)

```

Functions
---------

[](#functions)

Linkify : Transforms URLs, @usernames, hashtags into links. The type of $tweet can be object, array or text. By sending an object or an array the method will expand links (t.co) too.

```
Twitter::linkify($tweet);
```

Ago : Converts date into difference (2 hours ago)

```
Twitter::ago($timestamp);
```

LinkUser : Generates a link to a specific user, by their user object (such as $tweet-&gt;user), or id/string.

```
Twitter::linkUser($user);
```

LinkTweet : Generates a link to a specific tweet.

```
Twitter::linkTweet($tweet);
```

Examples
--------

[](#examples)

Returns a collection of the most recent Tweets posted by the user indicated by the screen\_name or user\_id parameters.

```
Route::get('/', function()
{
	return Twitter::getUserTimeline(['screen_name' => 'thujohn', 'count' => 20, 'format' => 'json']);
});
```

Returns a collection of the most recent Tweets and retweets posted by the authenticating user and the users they follow.

```
Route::get('/', function()
{
	return Twitter::getHomeTimeline(['count' => 20, 'format' => 'json']);
});
```

Returns the X most recent mentions (tweets containing a users's @screen\_name) for the authenticating user.

```
Route::get('/', function()
{
	return Twitter::getMentionsTimeline(['count' => 20, 'format' => 'json']);
});
```

Updates the authenticating user's current status, also known as tweeting.

```
Route::get('/', function()
{
	return Twitter::postTweet(['status' => 'Laravel is beautiful', 'format' => 'json']);
});
```

Updates the authenticating user's current status with media.

```
Route::get('/', function()
{
	$uploaded_media = Twitter::uploadMedia(['media' => File::get(public_path('filename.jpg'))]);
	return Twitter::postTweet(['status' => 'Laravel is beautiful', 'media_ids' => $uploaded_media->media_id_string]);
});
```

Sign in with twitter

```
Route::get('twitter/login', ['as' => 'twitter.login', function(){
	// your SIGN IN WITH TWITTER  button should point to this route
	$sign_in_twitter = true;
	$force_login = false;

	// Make sure we make this request w/o tokens, overwrite the default values in case of login.
	Twitter::reconfig(['token' => '', 'secret' => '']);
	$token = Twitter::getRequestToken(route('twitter.callback'));

	if (isset($token['oauth_token_secret']))
	{
		$url = Twitter::getAuthorizeURL($token, $sign_in_twitter, $force_login);

		Session::put('oauth_state', 'start');
		Session::put('oauth_request_token', $token['oauth_token']);
		Session::put('oauth_request_token_secret', $token['oauth_token_secret']);

		return Redirect::to($url);
	}

	return Redirect::route('twitter.error');
}]);

Route::get('twitter/callback', ['as' => 'twitter.callback', function() {
	// You should set this route on your Twitter Application settings as the callback
	// https://apps.twitter.com/app/YOUR-APP-ID/settings
	if (Session::has('oauth_request_token'))
	{
		$request_token = [
			'token'  => Session::get('oauth_request_token'),
			'secret' => Session::get('oauth_request_token_secret'),
		];

		Twitter::reconfig($request_token);

		$oauth_verifier = false;

		if (Input::has('oauth_verifier'))
		{
			$oauth_verifier = Input::get('oauth_verifier');
		}

		// getAccessToken() will reset the token for you
		$token = Twitter::getAccessToken($oauth_verifier);

		if (!isset($token['oauth_token_secret']))
		{
			return Redirect::route('twitter.login')->with('flash_error', 'We could not log you in on Twitter.');
		}

		$credentials = Twitter::getCredentials();

		if (is_object($credentials) && !isset($credentials->error))
		{
			// $credentials contains the Twitter user object with all the info about the user.
			// Add here your own user logic, store profiles, create new users on your tables...you name it!
			// Typically you'll want to store at least, user id, name and access tokens
			// if you want to be able to call the API on behalf of your users.

			// This is also the moment to log in your users if you're using Laravel's Auth class
			// Auth::login($user) should do the trick.

			Session::put('access_token', $token);

			return Redirect::to('/')->with('flash_notice', 'Congrats! You\'ve successfully signed in!');
		}

		return Redirect::route('twitter.error')->with('flash_error', 'Crab! Something went wrong while signing you up!');
	}
}]);

Route::get('twitter/error', ['as' => 'twitter.error', function(){
	// Something went wrong, add your own error handling here
}]);

Route::get('twitter/logout', ['as' => 'twitter.logout', function(){
	Session::forget('access_token');
	return Redirect::to('/')->with('flash_notice', 'You\'ve successfully logged out!');
}]);
```

Debug
-----

[](#debug)

First activate debug in the config file.

Then you can access the logs() method.

```
try
{
	$response = Twitter::getUserTimeline(['count' => 20, 'format' => 'array']);
}
catch (Exception $e)
{
	dd(Twitter::logs());
}

dd($response);
```

###  Health Score

27

—

LowBetter than 47% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity10

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity58

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

3779d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/12664104?v=4)[Rehan Manzoor](/maintainers/rummykhan)[@rummykhan](https://github.com/rummykhan)

---

Top Contributors

[![rummykhan](https://avatars.githubusercontent.com/u/12664104?v=4)](https://github.com/rummykhan "rummykhan (1 commits)")

---

Tags

laraveltwitterlaravel5laravel4

### Embed Badge

![Health badge](/badges/rummykhan-twitter/health.svg)

```
[![Health](https://phpackages.com/badges/rummykhan-twitter/health.svg)](https://phpackages.com/packages/rummykhan-twitter)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
