One of the exciting new features that came out in Laravel 5.3 was Laravel Notifications, and they allow you to send quick updates through a variety of services.
Included in the Laravel core is support for Email, Slack, and Nexmo but you can build your own or visit the community project where a lot of integrations have already been built.
As I am working on this site I wanted to automatically send a tweet whenever a new post is published and a package, for this has already been created by Christoph Rumpel. Let’s take a look at how easy it is to integrate the Twitter package and automatically tweet out new posts.
Twitter Package Setup
First, install the package:
composer require laravel-notification-channels/twitter
Next, add the provider to config/app.php
...'providers' => [ ... NotificationChannels\Twitter\TwitterServiceProvider::class,],...
Finally, create a new app on Twitter and add your config to the config/services.php file and your .env:
...'twitter' => [ 'consumer_key' => getenv('TWITTER_CONSUMER_KEY'), 'consumer_secret' => getenv('TWITTER_CONSUMER_SECRET'), 'access_token' => getenv('TWITTER_ACCESS_TOKEN'), 'access_secret' => getenv('TWITTER_ACCESS_SECRET')]...
Tip: The access_token and access_secret can be found on the “Keys and Access Tokens” tab of your Twitter app page.
Sending the Tweet
For my setup, I have a Post model that I’ll be using to send out the tweet from, but you can use any model you already have. Just add the Notifiable trait to it:
class Post extends Model{ use Notifiable;
Next, create your notification class:
php artisan make:notification PostPublished
Open up this file and adjust the via
method and add a toTwitter
method. Here is the completed class:
<?php namespace App\Notifications; use Illuminate\Notifications\Notification;use NotificationChannels\Twitter\TwitterChannel;use NotificationChannels\Twitter\TwitterStatusUpdate; class PostPublished extends Notification{ public function via($notifiable) { return [TwitterChannel::class]; } public function toTwitter($notifiable) { return new TwitterStatusUpdate('You should follow @laravelnews https://laravel-news.com/'); }}
Now to call this all you have to do is grab a Post and send it off:
$post = Post::find(1);$post->notify(new PostPublished());
The final change we need to make is to update the toTwitter
method in the PostPublished class, so it includes the actual post data.
public function toTwitter($post) { return new TwitterStatusUpdate($post->title .' https://laravel-news.com/'. $post->uri, [$post->featured_image]);}
The Post model is passed into the method, and then I just pull out the title, the full path to the post and add the post’s featured image as a second param.
That’s it!
These notification channels are simplifying the integration with a lot of external services that in the past would have been a chore to setup manually. If you’d like to go further here is a tutorial on how to send notifications to Telegram

Eric is the creator of Laravel News and has been covering Laravel since 2012.