Browse other questions tagged laravel slack slack-api laravel-notification or ask your own question. The Overflow Blog Forget Moore’s Law. Algorithms drive technology forward. Podcast 324: Talking apps, APIs, and open source with developers from Slack. Featured on Meta Stack Overflow for Teams is now free for up to 50 users, forever. Laravel Live India A community for Laravel beginners, experts and artisans from across the entire nation. Join the official community channel on Slack. One of the bestselling Laravel books! Learning Laravel book shows you a fastest way to learn developing web applications using Laravel 8 PHP framework. Slack Channel; Our Meetup. Talk About Laravel with Local St. Louis Developers. Meet at T-REX every 3rd Monday of the Month at 5:30pm. Amazing Talk from a Laravel Developer. Learn from one of your peer developers in the St. Each month a new developer will give an incredible talk. 私のLaravel 5.5プロジェクトを続けると、Laravel app.httpsのどこにスラックwebhook URLを定義するのか混乱してしまいました。laravel.comdocs5.5notifications#routing-slack-notificationsは、.
You can now send Slack notifications from Your Laravel application! The DreamFactory team has relied on the Laravel framework for more than five years now, starting with the initial release of our namesake API management platform having been built atop Laravel 5.0. In the years since, our reliance on the framework has only increased; in addition to the DreamFactory platform we’ve built three other fairly complicated applications, two of which are used for internal dashboard purposes and the third being the trial registration and account management site for Genie (https://genie.dreamfactory.com/), our hosted DreamFactory environment.
Like many companies, we’re also heavy Slack users, and rely on automated notifications from a variety of internal and third-party services. As it happens, integrating automated Slack notifications into a Laravel application is an extraordinarily simple process once you understand how the pieces go together. In this blog post I’ll walk you through a real-world example explaining how this is accomplished.
Did you know you can generate a full-featured, documented, and secure REST API in minutes using DreamFactory? Sign up for our free 14 day hosted trial to learn how! Our guided tour will show you how to create an API using an example MySQL database provided to you as part of the trial!
Configuring Your Laravel Application (Before sending Slack Notifications)
Before you can start sending Slack notifications from your Laravel application we’ll need to install the Slack notification channel package:
You’ll also need to install the “Incoming Webhooks” app in your Slack workspace. By doing so, you’ll be able to generate a unique URL which will be used to send messages to a designated Slack channel.
After clicking the “Add to Slack” button, you’ll be taken to the following screen:
Here you’re prompted to choose a channel where the incoming messages will be sent. As you can see in the screenshot, I’ve chosen a channel called #new-trials
. If you haven’t yet created the channel, clicking the create a new channel
link will cause a modal to open where you can create the destination channel.
Finally, click the “Add Incoming WebHooks Integration” button to generate the unique URL. Once you do, a confirmation notification stating “added an integration to this channel: incoming-webhook” will immediately be sent to the designated Slack channel. Also, the ensuing screen will present your newly generated webhook URL. Copy this URL to the clipboard (it will begin with https://hooks.slack.com
), open your Laravel application’s .env
file, and assign it to a configuration variable named something like SLACK_NOTIFICATION_WEBHOOK
: Acer altos g520 altos g520 driver download for windows.
Generating the Slack Notification
Next we’ll write the code used to send Slack notifications. Fortunately, most of this work is boilerplate, beginning with generation of the notification class which defines the message:
This will generate a boilerplate notification class geared towards e-mail. You’ll find the class in your project’s app/Notifications
directory. We’ll need to make a few modifications to this class in order to support Slack, beginning with referencing the SlackMessage
class at the top of the file:
Next, change the via
method to look like this:
Finally, delete the toMail
and toArray
methods, and in their place add the following toSlack
method:
When finished, the class will look like this:
Firing the Slack Notification
We’ve generated the Slack notification, however haven’t yet tied the notification into our application logic. There are two ways to do this:
- Notification Trait: You’ll use the notification trait when you want to send a notification in conjunction an event associated with a specific model instance, such as a trial or product.
- Notification Facade: You’ll use the notification facade when you want to send multiple notifications associated with a collection, such as multiple trials or products.
For this post we’ll focus on the notification trait. Suppose you want to send a Slack notification whenever a new trial is created. A model named Trial
houses the application’s trial-related logic. Open the Trial
model and add a reference to the Notifiable
class:
Next add a reference to the Notifiable
trait at the top of the class:
Finally, add a new method named routeNotificationForSlack
which returns the webhook URL:
You can test the notification by firing up Tinker:
Check your Slack channel and you should see a notification like that presented in the below screenshot:
While this notification confirms a successful integration, it isn’t exactly useful. Fortunately we can make some pretty simple modifications to the NewTrial
notification class’ toSlack
method to add some more context:
After making these changes, reload Tinker:
This time, you’ll see a Slack notification stating “Jason Gilmore created a new trial”. We can go even further though! Using a message attachment, we can add even more context:
Return to Tinker one more time to test the results:
In a moment you should see a message similar to the following show up in Slack:
Moving Notification Logic Into Your Application
Of course, in production you won’t be executing notifications from Tinker. An ideal location would likely be a trial controller’s store
method, because that’s where data associated with a new trial would be persisted to the database. That store
method might look something like this:
Slack Laravel Interview
Did you know you can generate a full-featured, documented, and secure REST API in minutes using DreamFactory? Sign up for our free 14 day hosted trial to learn how! Our guided tour will show you how to create an API using an example MySQL database provided to you as part of the trial!
Other Useful Laravel Notification Packages
Download alienware area-51 alx r8 driver. Slack is just one of many available Laravel notification packages. In addition to the notification options described in the Laravel documentation, at the time of this writing there were an additional 52 channels maintained by the Laravel community, including Twitter, Facebook, Twilio, and Microsoft Teams, among others. Head over to the aptly named Laravel Notification Channels website for a complete list.
- php >=5.5.0
- guzzlehttp/guzzle ~6.0|~5.0|~4.0
- ext-mbstring *
- php >=5.4.0
- guzzlehttp/guzzle ~6.0|~5.0|~4.0
- ext-mbstring *
- php >=5.4.0
- guzzlehttp/guzzle ~6.0|~5.0|~4.0
- ext-mbstring *
- php >=5.4.0
- guzzlehttp/guzzle ~5.0|~4.0
- ext-mbstring *
- php >=5.4.0
- guzzlehttp/guzzle ~5.0|~4.0
- ext-mbstring *
- php >=5.4.0
- guzzlehttp/guzzle ~5.0|~4.0
- ext-mbstring *
- php >=5.4.0
- guzzlehttp/guzzle ~5.0|~4.0
- ext-mbstring *
- php >=5.4.0
- guzzlehttp/guzzle ~5.0|~4.0
- ext-mbstring *
- php >=5.4.0
- guzzlehttp/guzzle ~5.0|~4.0
- ext-mbstring *
- php >=5.4.0
- guzzlehttp/guzzle ~5.0|~4.0
- ext-mbstring *
Slack Laravel Notification
- php >=5.4.0
- guzzlehttp/guzzle ~4.0
- ext-mbstring *
- php >=5.4.0
- guzzlehttp/guzzle ~4.0
- ext-mbstring *
- php >=5.4.0
- guzzlehttp/guzzle ~4.0
- ext-mbstring *
- php >=5.4.0
- illuminate/support 4.*
- guzzlehttp/guzzle ~4.0
- php >=5.3.0
- illuminate/support 4.1.*
- guzzlehttp/guzzle ~4.0
Please enable JavaScript to view the comments powered by Disqus.comments powered by Disqus
A simple PHP package for sending messages to Slack with incoming webhooks, focussed on ease-of-use and elegant syntax. Note: this package is no longer being actively maintained.
- Laravel integration: Slack for Laravel
- Symfony integration: NexySlackBundle
Requirements
- PHP 5.5, 5.6, 7.0 or HHVM
Installation
You can install the package using the Composer package manager. You can install it by running this command in your project root:
Then create an incoming webhook on your Slack account for the package to use. You'll need the webhook URL to instantiate the client (or for the configuration file if using Laravel).
Basic Usage
Instantiate the client
Settings
The default settings are pretty good, but you may wish to set up default behaviour for your client to be used for all messages sent. All settings are optional and you don't need to provide any. Where not provided, we'll fallback to what is configured on the webhook integration, which are managed at Slack, or our sensible defaults.
Field | Type | Description |
---|---|---|
channel | string | The default channel that messages will be sent to |
username | string | The default username for your bot |
icon | string | The default icon that messages will be sent with, either :emoji: or a URL to an image |
link_names | bool | Whether names like @regan or #accounting should be linked in the message (defaults to false) |
unfurl_links | bool | Whether Slack should unfurl text-based URLs (defaults to false) |
unfurl_media | bool | Whether Slack should unfurl media-based URLs, like tweets or Youtube videos (defaults to true) |
allow_markdown | bool | Whether markdown should be parsed in messages, or left as plain text (defaults to true) |
markdown_in_attachments | array | Which attachment fields should have markdown parsed (defaults to none) |
Sending messages
Sending a basic message (preview)
Sending a message to a non-default channel
Sending a message to a user
Sending a message to a channel as a different bot name (preview)
Sending a message with a different icon (preview)
Send an attachment (preview)
Send an attachment with fields (preview)
Send an attachment with an author (preview)
Advanced usage
Markdown
By default, Markdown is enabled for message text, but disabled for attachment fields. This behaviour can be configured in settings, or on the fly:
Send a message enabling or disabling Markdown
Laravel/slack-notification-channel
Send an attachment specifying which fields should have Markdown enabled
Explicit message creation
For convenience, message objects are created implicitly by calling message methods on the client. We can however do this explicitly to avoid hitting the magic method.
Attachments
When using attachments, the easiest way is to provide an array of data as shown in the examples, which is actually converted to an Attachment object under the hood. You can also attach an Attachment object to the message:
Each attachment field is also an object, an AttachmentField. They can be used as well instead of their data in array form:
You can also set the attachments and fields directly if you have a whole lot of them:
Contributing
If you're having problems, spot a bug, or have a feature suggestion, please log and issue on Github. If you'd like to have a crack yourself, fork the package and make a pull request. Please include tests for any added or changed functionality. If it's a bug, include a regression test.