norris1z / hubtel-laravel-sms-channel

适用于Laravel 5.3+的Hubtel短信通道

1.9 2020-12-13 15:20 UTC

This package is auto-updated.

Last update: 2024-09-14 00:02:21 UTC


README

Latest Stable Version Total Downloads License

此包使得使用Laravel 5.3+通过Hubtel发送通知变得简单。

内容

安装

要获取Laravel 5.3+的最新版本Hubtel通知通道,只需使用Composer引入项目。

$ composer require norris1z/hubtel-laravel-sms-channel

如果您使用Laravel 5.5+,则无需以下步骤。如果不使用,则安装包后,您需要注册服务提供者。打开 config/app.php 并将以下内容添加到 providers 键。

  • NotificationChannels\Hubtel\HubtelServiceProvider::class

设置Hubtel服务

在您的Hubtel账户中,转到应用页面。点击所需应用的详情,并复制您的apiKeyapiSecret

在终端运行

$ php artisan vendor:publish --provider="NotificationChannels\Hubtel\HubtelServiceProvider"

这将在您的config目录中创建一个hubtel.php文件。

将您的apiCredentials粘贴到config/hubtel.php配置文件中。您可以将下面的示例配置复制以开始使用

'account' => [
        'key' => env('HUBTEL_API_KEY'),
        'secret' => env('HUBTEL_API_SECRET')
]

或者

HUBTEL_API_KEYHUBTEL_API_SECRET添加到您的.env文件中

使用方法

现在您可以在通知中的via()方法中使用该通道

use Illuminate\Notifications\Notification;
use NotificationChannels\Hubtel\HubtelChannel;
use NotificationChannels\Hubtel\HubtelMessage;

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

    public function toSMS($notifiable)
    {
        return (new HubtelMessage)
			->from("JabClari")
			->to("2331234567890")
           	 	->content("Kim Kippo... Sup with you");
    }
}

为了让通知知道您要发送到哪个电话号码,请将routeNotificationForSMS方法添加到您的可通知模型中,例如您的用户模型

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

可用的消息方法

  • from($from):设置发送者的名称或电话号码
  • to($to):设置接收者的电话号码
  • content($content):设置消息内容
  • registeredDelivery():设置投递报告请求
  • clientReference($reference):设置客户参考编号
  • type($type):设置要发送的消息类型
  • udh($udh):设置发送的短信消息的用户数据报头
  • time($time):设置投递消息的时间
  • flashMessage():将消息作为闪存消息发送

Hubtel文档页面上了解更多关于可用方法的信息

变更日志

最新通知

对于希望将此软件包用于VPS托管应用的开发者,如果服务器位于美国,且您拥有美国IP地址,您可能需要通过发送邮件至 support@hubtel.com 向hubtel申请美国IP地址的白名单。根据我的经验,该软件包在本地上运行良好,因为使用的IP是加纳IP地址,但在生产服务器上无法工作。请注意,这并非软件包问题,因为这个软件包只是为Laravel发送成功的短信消息组织组件。当您使用Laravel队列时,更难知道问题的原因,因为响应代码没有被记录,队列只是记录“处理失败”。当使用Guzzlehttp直接在生产服务器(VPS)上发送相同的短信时,Hubtels SMS服务器会返回403禁止访问。根据他们的网站(hubtel),403 HTTP响应表示接收者没有同意接收消息,这更加令人困惑。 :)

请参阅 变更日志 获取更多关于最近更改的信息。

测试

$ composer test

安全性

如果您发现任何与安全相关的问题,请通过电子邮件 norisjibril@gmail.com 而不是使用问题跟踪器来报告。

贡献

请参阅 贡献指南 获取详细信息。

致谢

许可

MIT许可(MIT)。请参阅 许可文件 了解更多信息。