infinitypaul/laravel-notification-channel-termii

Laravel 的 Termii SMS/WhatsApp 通道

1.0.0 2023-06-17 21:00 UTC

This package is auto-updated.

Last update: 2024-09-25 09:40:15 UTC


README

此包让您轻松使用 Laravel 发送 Termii 通知,就像周日早晨喝咖啡一样轻松。喝上一口,让我们开始吧。

内容

安装

您可以通过 composer 更快地安装此包,比说 "composer" 还快。

composer require infinitypaul/laravel-notification-channel-termii

服务提供者... 您一定会喜欢的。您要么自己安装它们,要么如果您使用的是 Laravel 5.5 或更高版本,让包自动发现为您做这项工作。

// config/app.php
'providers' => [
    ...
    Infinitypaul\Termii\TermiiServiceProvider::class,
],

设置您的 Termii 账户

是时候告诉 Laravel 您的秘密(即您的 Termii API 密钥)了。同时,添加您喜欢的通道和可选的发送者 ID。将这些悄悄话告诉您的 config/services.php

// config/services.php
'termii' => [
'api_key' => env('TERMII_API_KEY'),
'from' => env('TERMII_FROM'),
'channel' => 'dnd' //because I know you love 'do not disturb' mode 😉
]

用法

下一步就像吃派一样简单。只需在通知中的 via() 方法中使用该通道即可。

use Infinitypaul\Termii\TermiiChannel;
use Infinitypaul\Termii\TermiiMessage;
use Illuminate\Notifications\Notification;

class WelcomeSMS extends Notification
{
    public function via($notifiable)
    {
        return [TermiiChannel::class]; // see? pie!
    }

    public function toTermii($notifiable)
    {
        return (new TermiiMessage())
            ->content("Thanks For Subscribing to infinitypaul.medium.com. We promise to only send interesting stuff, no cat videos... well, maybe just one.");
    }
}

让我们告诉通知它要去哪里(您要发送到哪部手机)。将 routeNotificationForTermii 方法添加到您的 Notifiable 模型中(例如,您的 User 模型)。

public function routeNotificationForTermii()
{
    return $this->phone; // where `phone` is a field in your users table;
}

或者您也可以直接从您的 toTermii() 实现中的 TermiiMessage 类发送。

public function toTermii($notifiable)
    {
        return (new TermiiMessage())
            ->content("Thanks For Subscribing to infinitypaul.medium.com. We promise to only send interesting stuff, no cat videos... well, maybe just one.")
            ->to("234100000001");
    }

可用的消息方法

TermiiMessage

  • from(''): 接受一个字符串 - 代表短信的发送者 ID,可以是字母数字的或设备名称的 WhatsApp。字母数字发送者 ID 的长度应在 3 到 11 个字符之间(例如:CompanyName)。
  • to(''): 接受一个字符串 - 代表短信的目的地 ID,以国际格式表示(例如:2338013828492)。它是可选的,可以在 notifable 模型中的 routeNotificationForTermii() 中设置。
  • content(''): 接受一个字符串 - 要发送到目标手机号码的消息文本。
  • channel(''): 接受一个字符串。这是消息发送的路径。它可以是 dndwhatsappgeneric,默认为 dnd
  • media(''): 接受一个数组,如果您的通道是 whatsapp。这是一个媒体对象,仅适用于高容量 WhatsApp。当使用媒体参数时,请确保您没有使用 sms 参数。
  • media_url(''): 接受一个字符串,如果您的通道是 whatsapp。文件资源的 URL。
  • media_option(''): 接受一个字符串,如果您的通道是 whatsapp。应添加到图像中的标题。

变更日志

对我们的 Termii 之旅感到好奇?请查看 CHANGELOG 了解最近发生了什么。

测试

composer test //(We promise it won't explode.)

安全性

发现了任何安全问题?请通过 infinitypaul@live.com 发送电子邮件给我们。我们承诺会认真对待,而不是使用问题跟踪器。

致谢

许可

MIT 许可证(MIT)。有关更多信息,请参阅 许可证文件