通过 Vodafone SMS API 发送 Laravel 通知

v2.0.0 2022-06-05 05:22 UTC

This package is auto-updated.

Last update: 2024-09-05 10:39:51 UTC


README

Latest Version on Packagist Software License Build Status StyleCI Quality Score Code Coverage Total Downloads

此包使您能够使用 Laravel 5.5+ 和 6.x 通过 Vodafone 以轻松发送短信通知

在 Laravel 的通知通道的基础上构建,此包允许您通过 Vodafone SMS 网关服务发送 SMS 通知。

发送 SMS 给用户变得和以下使用一样简单

$user->notify(new Notification())

内容

安装

使用 composer 安装包

composer require laravel-notification-channels/vodafone

将配置添加到 services.php 配置文件中

'vodafone' => [
    'username' => env('VODAFONE_USERNAME'),
    'password' => env('VODAFONE_PASSWORD'),
]

设置 Vodafone 服务

使用 Vodafone SMS 服务需要一个 Vodafone 账户,可以通过此位置安排: https://www.vodafone.com.au/messaging/smser

提供您的 Vodafone 账户后,您将收到一个 API 用户名和密码,这些需要在您的 env 或 config 文件中输入。

Vodafone 服务有发送带有字母标签的消息的选项,因此消息不是从一个杂项号码发送,而是从一个预定义的名称发送。

使用

发送文本消息

在您的通知中,需要将 Vodafone 通道添加到您的 via() 方法中

use Illuminate\Notifications\Notification;
use NotificationChannels\Vodafone\VodafoneChannel;
use NotificationChannels\Vodafone\VodafoneMessage;

class Invitation extends Notification
{
    public function via($notifiable)
    {
        return [VodafoneChannel::class];
    }

    public function toVodafone($notifiable)
    {
        return (new VodafoneMessage)
            ->content($this->content)
            ->from('My App');
    }

在您的可通知模型中,确保包含一个 routeNotificationForVodafone() 方法,该方法应返回一个包括国家代码的完整手机号码。

public function routeNotificationForVodafone()
{
    return $this->phone;
}

可用的消息方法

content():设置短信的消息内容

from():设置消息的合格发送者

检索文本消息

VodafoneClient 类包含一个 'receive' 方法,用于从 Vodafone 服务器检索消息。

注意:它只返回未读消息,并且在 Vodafone 端点被击中后,所有未读消息都被标记为已读。因此,您只有一次机会进一步处理传入的消息。

use NotificationChannels\Vodafone\VodafoneClient;

$vc = new VodafoneClient();
$vc->receive();

// A static method is also available
VodafoneClient::getUnread();

由于 Vodafone API 只返回一次一个未读消息,所以需要使用循环来检索所有未读消息。

当没有更多未读消息时,Vodafone 将返回一个错误(代码:201),因此在异常上中断循环意味着没有更多消息可以检索。

use NotificationChannels\Vodafone\VodafoneClient;

$ex = false;
do {
    try {
        $message = VodafoneClient::getUnread();
        // Process Message
    } catch (\Exception $ex) {}
} while (!$ex);

变更日志

有关最近更改的更多信息,请参阅 CHANGELOG

贡献

有关详细信息,请参阅 CONTRIBUTING

鸣谢

许可

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