boyo/laravel-twilio

使用 Twilio 的 Laravel 通知

v1.2 2022-10-13 19:36 UTC

This package is auto-updated.

Last update: 2024-09-14 00:09:41 UTC


README

此包为 Twilio 服务添加了一个通知通道。您可以使用它发送短信。未来可能还有其他通道可用。

安装

通过 Composer 安装。

配置

将以下内容添加到您的服务配置文件中。

'twilio' => [
	'token' => env('TWILIO_TOKEN',''),
	'sid' => env('TWILIO_SID',''),
	'send' => env('TWILIO_SEND',false),
	'from' => env('TWILIO_FROM',''),
	'log' => env('TWILIO_LOG',true),
	'log_channel' => env('TWILIO_LOG_CHANNEL','stack'),
	'prefix' => '',
	'allow_multiple' => false,
],
  • log 如果消息应该写入日志文件
  • log_channel 要记录消息的日志通道
  • send 如果应该发送消息(生产/开发环境)
  • bulglish 如果需要将西里尔文文本转换为拉丁字母以用于短信(西里尔文消息限制为 67 个字符)
  • allow_multiple 如果允许超过 160 个字符的短信(按多条短信计费)

发送测试

要发送测试消息,请使用以下 artisan 命令

php artisan twilio:test phone --message='content' --channel=sms

直接使用

您可以实例化一个 Boyo\Twilio\TwilioMessage 对象并立即发送。

use Boyo\Twilio\TwilioMessage;
use Boyo\Twilio\TwilioSender;

class MyClass
{
	public function myFunction()
	{
		$message = (new TwilioMessage())->to('359888888888')->sms('SMS text');
		
		$client = new TwilioSender();
		$client->send($message);	
	}
}

与通知一起使用

  1. 创建一个扩展 Boyo\Twilio\TwilioMessage 的消息文件。它可以在构造函数中接收您所需的数据,并应实现一个 build() 方法来定义消息的文本内容 - 一个好的做法是渲染一个视图文件,这样您的消息内容就在您的视图中。您只需定义您要使用的交付通道的方法。
use Boyo\Twilio\TwilioMessage;

class MyMessage extends TwilioMessage 
{
	public function __construct($data)
    {
        $this->id = $data->id; // your unique message id, add other parameters if needed
    }
    
	public function build() {
		// set your sms text 
		$this->sms('SMS text');
		
		return $this;
	}	
}
  1. 在您的通知类中,您现在可以将 Twilio 通道包含在 via() 方法返回的 $via 数组中。
use Boyo\Twilio\TwilioChannel;

via($notifiable) 
{
	
	// ...
	
	$via[] = TwilioChannel::class;
	
	return $via 
	
}

在同一通知类中,还应定义一个 toSms() 方法

public function toSms($notifiable)
{
	return (new MyMessage($unique_id))->to($notifiable->phone);
}

通道方法是您定义要使用的交付通道的地方。

  • sms 仅通过短信交付(这是默认值,如果您省略了通道方法)
  • 未来可能还有其他 Twilio 通道可用