brentnd / laravel-sparkposthooks
A simple SparkPost webhook controller to help with events. Compatible with Laravel 5+ and Lumen 5+.
Installs: 2 212
Dependents: 0
Suggesters: 0
Security: 0
Stars: 3
Watchers: 1
Forks: 0
Open Issues: 0
Requires
- php: >=5.5.9
- illuminate/routing: ~5.0
- illuminate/support: ~5.0
This package is auto-updated.
Last update: 2021-07-08 19:14:53 UTC
README
A simple SparkPost webhook controller to help with email events. Useful for notifying users that you cannot reach them via email inside your application. Compatible with Laravel 5+ and Lumen 5+.
Installation
composer require brentnd/laravel-sparkposthooks
Basic Usage
- Create a controller that extends SparkPostWebhookController as follows. You can then handle any SparkPost webhook event.
use Brentnd\Api\Webhooks\SparkPostWebhookController; class MySparkPostController extends SparkPostWebhookController { /** * Handle a bounced email * * @param $payload */ public function handleMessageEventBounce($payload) { $email = $payload['rcpt_to']; } /** * Handle a rejected email * * @param $payload */ public function handleMessageEventPolicyRejection($payload) { $email = $payload['rcpt_to']; } /** * Handle an email open * * @param $payload */ public function handleTrackEventOpen($payload) { $transmissionId = $payload['transmission_id']; } }
- Create the route to handle the webhook. In your routes.php file add the following.
post('sparkpost-webhook', ['as' => 'sparkpost.webhook', 'uses' => 'MySparkPostController@handleWebhook']);
-
Exclude your route from CSRF protection so it will not fail.
-
Make sure you add your webhook in SparkPost to point to your route. You can do this here: https://app.sparkpost.com/webhooks
Webhook Events
Common events and their handlers. For other events, just follow the same pattern.
Event type | Event | Method |
---|---|---|
Ping | - | handlePing() |
Message Events | Bounce | handleMessageEventBounce() |
Message Events | Delivery | handleMessageEventDelivery() |
Message Events | Injection | handleMessageEventInjection() |
Message Events | Policy Rejection | handleMessageEventPolicyRejection() |
Message Events | Delay | handleMessageEventDelay() |
Engagement Events | Click | handleTrackEventClick() |
Engagement Events | Open | handleTrackEventOpen() |
Engagement Events | Initial Open | handleTrackEventInitialOpen() |
Unsubscribe Events | List Unsubscribe | handleUnsubscribeEventListUnsubscribe() |
Unsubscribe Events | Link Unsubscribe | handleUnsubscribeEventLinkUnsubscribe() |
Contributors
Based on eventhomes/laravel-mandrillhooks