This package makes it easy to send notifications via Twitter with Laravel

v6.2.0 2022-12-01 14:02 UTC


Latest Version on Packagist Software License StyleCI Quality Score Code Coverage Total Downloads

This package makes it easy to send Laravel notifications using Twitter. (Laravel 8+, PHP 8.*)

PS: If you have an older Laravel application, or PHP version, you can use an older version. But be aware that these are no longer maintained.



This package is part of the Laravel Notification Channels project. It provides additional Laravel Notification channels to the ones given by Laravel itself.

The Twitter channel makes it possible to send out Laravel notifications as a Twitter status update (post on the timeline) or as a direct message.


If you prefer a video, there is also an introduction video available for you. If not, just read on.

You can install this package via composer:

composer require laravel-notification-channels/twitter

The service provider gets loaded automatically.

Setting up the Twitter service

You will need to create a Twitter app to use this channel. Within this app, you will find the keys and access tokens. Place them inside your .env file. To load them, add this to your config/services.php file:

'twitter' => [
    'consumer_key'    => env('TWITTER_CONSUMER_KEY'),
    'consumer_secret' => env('TWITTER_CONSUMER_SECRET'),
    'access_token'    => env('TWITTER_ACCESS_TOKEN'),
    'access_secret'   => env('TWITTER_ACCESS_SECRET')

This will load the Twitter app data from the .env file. Make sure to use the same keys you have used there like TWITTER_CONSUMER_KEY.


To use this package, you need to create a notification class, like NewsWasPublished from the example below, in your Laravel application. Make sure to check out Laravel's documentation for this process.

Publish a Twitter status update


use Illuminate\Notifications\Notification;
use NotificationChannels\Twitter\TwitterChannel;
use NotificationChannels\Twitter\TwitterMessage;
use NotificationChannels\Twitter\TwitterStatusUpdate;

class NewsWasPublished extends Notification
     * Get the notification's delivery channels.
     * @param  mixed  $notifiable
     * @return array
    public function via($notifiable)
        return [TwitterChannel::class];

    public function toTwitter(mixed $notifiable): TwitterMessage
        return new TwitterStatusUpdate('Laravel notifications are awesome!');

Take a closer look at the toTwitter method. Here we define what kind of Twitter message we want to trigger. In this case, it is a status update message, which is just a new message in your timeline.

public function toTwitter(mixed $notifiable): TwitterMessage
    return new TwitterStatusUpdate('Laravel notifications are awesome!');

Publish Twitter status update with images

It is possible to publish images with your status update too. You have to pass the image path to the withImage method.

public function toTwitter(mixed $notifiable): TwitterMessage
    return (new TwitterStatusUpdate('Laravel notifications are awesome!'))->withImage('marcel.png');

If you want to use multiple images, just pass an array of paths.

return (new TwitterStatusUpdate('Laravel notifications are awesome!'))->withImage([

Publish Twitter status update in reply to another tweet

Additionally, you can publish a status update in reply to another tweet. That is possible using the method inReplyTo.

public function toTwitter(mixed $notifiable): TwitterMessage
    return (new TwitterStatusUpdate('@christophrumpel Laravel notifications are awesome!'))->inReplyTo(123);

Note that the reply status id will be ignored if you omit the author of the original tweet, according to Twitter docs.

Send a direct message

To send a Twitter direct message to a specific user, you will need the TwitterDirectMessage class. Provide the Twitter user handler as the first parameter and the message as the second one.

public function toTwitter(mixed $notifiable): TwitterMessage
     return new TwitterDirectMessage('marcelpociot', 'Hey Marcel, it was nice meeting you at the Laracon.');

You can also provide the user ID instead of the screen name. This would prevent an extra Twitter API call. Make sure to pass it as an integer when you do.

public function toTwitter(mixed $notifiable): TwitterMessage
     return new TwitterDirectMessage(12345, 'Hey Marcel, it was nice meeting you at the Laracon.');

Handle multiple Twitter Accounts

There might be cases where you need to handle multiple Twitter accounts. This means you need to be able to change the provided keys and tokens of your Twitter app. Luckily, Laravel can help you here. In your notifiable model, you can define the routeNotifiactionForTwitter method. Here you can override the provided settings.

public function routeNotificationForTwitter($notification)
   return [


Please see CHANGELOG for more information about what has changed recently.


$ composer test


If you discover any security-related issues, please email instead of using the issue tracker.


Please see CONTRIBUTING for details.



The MIT License (MIT). Please see License File for more information.