travisjryan / twilio
Requires
- php: >=7.2.0
- twilio/sdk: ^6.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.16
- illuminate/console: ~6||~7||~8
- illuminate/support: ~6||~7||~8
- phpunit/phpunit: ^8.0
README
Laravel Twilio API 集成
安装
首先通过 Composer 安装此包。请在终端中运行以下命令
composer require aloha/twilio
这将为您注册两个新的 artisan 命令
twilio:sms
twilio:call
并将这些对象可解析地从 IoC 容器中解析出来
Aloha\Twilio\Manager
(别名twilio
)Aloha\Twilio\TwilioInterface
(解析一个Twilio
对象,由Manager
创建的默认连接对象)。
如果您喜欢,还有一个 Facade 类可供使用。如果想要使用简短的类名,请在您的 app.php
配置文件中将以下行添加到 aliases
数组中
'Twilio' => 'Aloha\Twilio\Support\Laravel\Facade',
您可以使用终端命令将默认配置文件发布到 config/twilio.php
php artisan vendor:publish --provider="Aloha\Twilio\Support\Laravel\ServiceProvider"
外观
该外观具有与 Aloha\Twilio\TwilioInterface
完全相同的方法。首先,在您的文件顶部包含 Facade
类
use Twilio;
使用默认的 twilio
配置文件 发送消息
Twilio::message($user->phone, $message);
一个额外的功能是可以定义要使用哪些设置(以及哪些发送者电话号码)
Twilio::from('call_center')->message($user->phone, $message); Twilio::from('board_room')->message($boss->phone, 'Hi there boss!');
在您的 twilio
配置文件 中定义多个条目以使用此功能。
使用方法
创建 Twilio 对象。该对象实现了 Aloha\Twilio\TwilioInterface
。
$twilio = new Aloha\Twilio\Twilio($accountId, $token, $fromNumber);
发送短信
$twilio->message('+18085551212', 'Pink Elephants and Happy Rainbows');
创建通话
$twilio->call('+18085551212', 'http://foo.com/call.xml');
一次性生成通话并构建消息
$twilio->call('+18085551212', function (\Twilio\TwiML\VoiceResponse $message) { $message->say('Hello'); $message->play('https://api.twilio.com/cowbell.mp3', ['loop' => 5]); });
或者使用任何 Twiml 描述来拨打一次电话,您可以传递任何 Twiml 对象
$message = new \Twilio\TwiML\VoiceResponse(); $message->say('Hello'); $message->play('https://api.twilio.com/cowbell.mp3', ['loop' => 5]); $twilio->call('+18085551212', $message);
访问配置的 Twilio\Rest\Client
对象
$sdk = $twilio->getTwilio();
您也可以通过外观访问此对象
$sdk = Twilio::getTwilio();
传递尽可能多的可选参数
如果您想将额外的可选参数传递给 messages->sendMessage(...)
方法 从 Twilio SDK,您可以通过添加到 message
方法来实现。所有参数都会传递,并且配置中的 from
字段会被添加。
$twilio->message($to, $message, $mediaUrls, $params); // passes all these params on.
对于 调用方法 也是如此。
$twilio->call($to, $message, $params); // passes all these params on.
模拟类
还有一个模拟的 TwilioInterface
实现:Aloha\Twilio\Dummy
。该类允许您在需要快速集成测试时使用模拟实现而不是有效实现。
日志装饰器
还有一个类可供您使用:Aloha\Twilio\LoggingDecorator
。该类封装了任何 TwilioInterface
对象,并记录 Twilio 将为您执行的操作。它还接受一个 Psr\Log\LoggerInterface
对象(如 Monolog)进行记录。
默认情况下,服务提供者不会使用 LoggingDecorator
封装对象,但您可以使用它。一个可能的用例是构建一个记录将要发生什么但不实际调用 Twilio 的 TwilioInterface
对象(使用 Dummy 类)。
if (getenv('APP_ENV') === 'production') { $twilio = $container->make(\Aloha\Twilio\Manager::class); } else { $psrLogger = $container->make(\Psr\Log\LoggerInterface::class); $twilio = new LoggingDecorator($psrLogger, new \Aloha\Twilio\Dummy()); } // Inject it wherever you want. $notifier = new Notifier($twilio);
鸣谢
许可协议
laravel-twilio 是一个开源软件,受 MIT 许可协议 许可。