actengage / laravel-message-gears
该软件包最新版本(v1.0.0)没有可用的许可信息。
Laravel 的 MessageGears 通知驱动程序。
v1.0.0
2024-07-11 17:43 UTC
Requires
- php: ^8.1
- guzzlehttp/guzzle: ^7.0
- illuminate/config: ^11.0
- illuminate/notifications: ^11.0
- illuminate/support: ^11.0
Requires (Dev)
- laravel/pint: ^1.8
- orchestra/testbench: ^9.0
- phpunit/phpunit: ^10.0
README
这是一个专门针对 Laravel 的 MessageGears API 包装器。此软件包提供了一种流畅的语法,用于在 Laravel 中发送 MessageGears 请求和通知。
composer require actengage/laravel-message-gears
配置
在 config/services.php
文件中定义 MessageGears 配置。这里的任何值都被认为是全局默认值,可以在每次请求的基础上覆盖。
// config/services.php return [ 'messagesgears' => [ 'api_key' => '...', 'account_id' => '...', 'campaign_id' => '...', ] ]
Laravel 通知
使用默认通知很简单。实例化通知并传递参数。任何参数都将覆盖全局或默认值。
use Actengage\MessageGears\Notifications\SendTransactionalCampaign; $user = new User(); $user->email = 'test@test.com'; $user->save(); $user->notify(new SendTransactionalCampaign([ 'campaignId' => 'CAMPAIGN_ID' ]));
提交事务性活动
使用服务提供商手动发送事务性活动。
app('messagegears')->submitTransactionCampaign([ 'campaignId' => 'CAMPAIGN_ID', 'recipient' => [ 'email' => 'test@test.com' ] ]);
流畅的消息构建器
您还可以实例化流畅的消息构建器并直接发送消息。
use Actengage\MessageGears\TransactionalCampaignSubmit; $message = (new TransactionalCampaignSubmit) ->accountId(1) ->apiKey('API_KEY') ->to('test@test.com') ->context('some.nested.context', true); app('messagegears')->submitTransactionalCampaign($message)
自定义通知
这是一个通知的示例。必须使 toTransactionalCampaign
活动返回 Actengage\MessageGears\TransactionalCampaignSubmit
的实例。
<?php namespace Actengage\MessageGears\Notifications; use Illuminate\Notifications\Notification; use Actengage\MessageGears\TransactionalCampaignChannel; use Actengage\MessageGears\Messages\TransactionalCampaignSubmit; class SendTransactionalCampaign extends Notification { /** * The notification params. * * @var array $params */ public $params; /** * The notification constructor. * * @param array $params * @return void */ public function __construct(array $params = []) { $this->params = $params; } /** * Get the notification channels. * * @param mixed $notifiable * @return array|string */ public function via($notifiable) { return [TransactionalCampaignChannel::class]; } /** * Cast the notification as a transactional campaign message. * * @param array $params * @return \Actengage\MessageGears\TransactionalCampaignSubmit */ public function toTransactionalCampaign($notifiable) { return new TransactionalCampaignSubmit($this->params); } }