wadeshuler/yii2-sms-twilio

此包已被弃用,不再维护。没有建议的替代包。

基于我的基础包 Yii2 SMS 的 Twilio SMS 插件,使发送短信消息变得像发送电子邮件一样简单!

安装次数: 10,888

依赖者: 0

建议者: 0

安全: 0

星标: 3

关注者: 1

分支: 1

类型:yii2-extension

v1.0.1 2022-04-02 23:21 UTC

This package is auto-updated.

Last update: 2022-04-02 23:22:32 UTC


README

基于我的基础包 Yii2 SMS 的 Twilio SMS 插件,使发送短信消息变得像发送电子邮件一样简单!

安装

通过 composer 安装此扩展是首选方式

运行以下命令

composer require --prefer-dist wadeshuler/yii2-sms-twilio

"wadeshuler/yii2-sms-twilio": "~1.0"

将以下内容添加到您应用程序的 composer.json 文件的 require 部分。

然后在您的 main-local.php (高级) 或 web.php (基本) 中添加一个新的 sms 组件,如下所示

'sms' => [
    'class' => 'wadeshuler\sms\twilio\Sms',

    // Advanced app use '@common/sms', basic use '@app/sms'
    'viewPath' => '@common/sms',     // Optional: defaults to '@app/sms'

    // send all sms to a file by default. You have to set
    // 'useFileTransport' to false and configure the messageConfig['from'],
    // 'sid', and 'token' to send real messages
    'useFileTransport' => true,

    'messageConfig' => [
        'from' => '+15552221234',  // Your Twilio number (full or shortcode)
    ],

    // Find your Account Sid and Auth Token at https://twilio.com/console
    'sid' => 'ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
    'token' => 'your_auth_token',

    // Tell Twilio where to POST information about your message.
    // @see https://www.twilio.com/docs/sms/send-messages#monitor-the-status-of-your-message
    //'statusCallback' => 'https://example.com/path/to/callback',      // optional
],

注意:此包不提供 statusCallback 路由。您需要创建自己的路由来处理此操作。发送短信消息不是必需的,用于更深入地跟踪每条消息的状态。

使用方法

您可以通过两种方式发送短信消息。一种方式是使用视图文件,就像邮件发送器一样,通过在 compose() 调用中传递它。唯一的不同之处在于,您不需要指定 html/text 数组的键。只需传递字符串即可,因为短信消息不使用 html。

使用视图文件

在控制器/模型中使用它如下

Yii::$app->sms->compose('test-message', ['name' => 'Wade'])
    //->setFrom('12345')  // if not set in config, or to override
    ->setTo('+15558881234')
    ->send();

您需要一个视图文件,位于您的 viewPath 指向的位置。默认情况下,它是 @app/sms。您可以在上面的配置中看到我们将其覆盖为 @common/sms。这与 Yii2 Advanced 使用的电子邮件视图的位置类似,即 "common" 目录。

视图文件: common/sms/test-message.php (高级) 或 /sms/test-message.php (基本)

Hello <?= $name ?> This is a test!

Thanks!

不使用视图文件

在快速发送大量文本消息时,您可能希望为了性能原因而跳过视图文件,或者您可能只是发现它对您的使用来说过于强大。

$name = "Wade";

Yii::$app->sms->compose()
    //->setFrom('12345')  // optional if set in main config
    ->setTo('+15558881234')
    ->setMessage("Hey {$name} this is a test!")
    ->send();

setMessage() 是一个别名或 setTextBody() 的美名函数。由于短信消息只涉及文本而不涉及 html,我觉得这样更干净。然而,如果您熟悉邮件发送器处理事物的方式,则 setTextBody() 将同样有效。两者都可以。

确定成功的发送

返回一个布尔值,因此很简单

$result = Yii::$app->sms->compose()
    ->setTo('+15558881234')
    ->setMessage("Hey {$name} this is a test!")
    ->send();

if ( $result === true ) {
    echo 'SMS was sent!';
} else {
    'Error sending SMS!';
}

如何发送图片?

在您的 compose() 调用后,使用 ->setMediaUrl($urlToImage)

我是否必须调用 setFrom()

只有当您在配置中的 messageConfig 数组中未指定 from 号码时,您才需要使用 setFrom()

如果您想覆盖主配置中的 from 地址,则可以调用 setFrom()

如果您只从1个号码发送,只需进行配置,不要直接调用它,这样您以后就不需要在多个地方更改它。

提示:如果您有多个号码,请使用Yii2的参数数组,以便在以后轻松修改这些号码。

在哪里可以找到错误日志?

在发送过程中遇到异常时,它们将被记录在@runtime/sms下,并以异常类型命名。

待办事项

  • 更新README
  • 更新文档/注释
  • 创建Twilio日志组件
  • 添加对更多Twilio功能的支持(messagingServiceSid、通道地址等)

捐赠

如果您觉得我的代码有用,请考虑捐赠。

PayPal Donate