getmaple / twilio

该软件包已被废弃,不再维护。未建议替代软件包。

Twilio API for Laravel

4.0.3 2018-03-14 10:48 UTC

README

Laravel Twilio API 集成

Build Status Total Downloads Latest Stable Version Latest Unstable Version License Gitter

安装

首先通过 Composer 安装此软件包。在终端运行以下命令

composer require aloha/twilio

如果您正在使用 Laravel 5.5+,这就足够了。

如果您仍在使用更早版本的 Laravel,则需要执行以下步骤:添加软件包的服务提供程序并为软件包别名。为此,请打开您的 config/app.php 文件。

Laravel (5.5 及以下版本) 的集成

要在您的 Laravel 项目中设置此功能,您需要添加服务提供程序。打开 app.php,并将新的项添加到 providers 数组中。

'Aloha\Twilio\Support\Laravel\ServiceProvider',

这将为您注册两个新的 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',

在 Laravel 4 中,您可以使用 artisan 命令 config:publish aloha/twilio 将默认配置文件发布到 app/config/packages/aloha/twilio/config.php

在 Laravel 5 中,您可以使用 artisan 命令 vendor:publish 将默认配置文件发布到 config/twilio.php

Facade

此 Facade 拥有与 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 ($message) {
    $message->say('Hello');
    $message->play('https://api.twilio.com/cowbell.mp3', ['loop' => 5]);
});

访问配置的 Twilio\Rest\Client 对象

$sdk = $twilio->getTwilio();

您也可以通过 Facade 访问此对象

$sdk = Twilio::getTwilio();
传递尽可能多的可选参数

如果您想将额外的可选参数传递给 messages->sendMessage(...) 方法(来自 Twilio SDK),可以在 message 方法中这样做。所有参数都将传递,并且 from 字段将从配置中添加。

$twilio->message($to, $message, $mediaUrls, $params);
// passes all these arguments on.

对于 调用方法 也同样适用。

$twilio->call($to, $message, $params);
// passes all these arguments on.

虚拟类

提供了一个名为 TwilioInterface 的虚拟实现: Aloha\Twilio\Dummy。这个类允许您在需要快速集成测试时,用这个类替换实际的实现。

日志装饰器

还有一个类可供您使用: Aloha\Twilio\LoggingDecorator。这个类将任何 TwilioInterface 对象包装起来,并记录Twilio为您执行的操作。它还接受一个 Psr\Log\LoggerInterface 对象(如Monolog)用于日志记录。

默认情况下,服务提供商不会用 LoggingDecorator 包装对象,但您可以根据需要使用它。一个可能的用例是构建一个记录将要发生什么但不会实际调用Twilio(使用虚拟类)的 TwilioInterface 对象。

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 许可证授权