norris1z / hubtel-laravel-sms-channel
适用于Laravel 5.3+的Hubtel短信通道
Requires
- php: >=7.2
- guzzlehttp/guzzle: ^7.2
- illuminate/notifications: 5.3.*|5.4.*|5.5.*|5.6.*|5.7.*|5.8.*|6.*|7.*|8.*
- illuminate/support: 5.1.*|5.2.*|5.3.*|5.4.*|5.5.*|5.6.*|5.7.*|5.8.*|6.*|7.*|8.*
Requires (Dev)
- phpunit/phpunit: ^8.5
README
此包使得使用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账户中,转到应用页面。点击所需应用的详情,并复制您的apiKey和apiSecret。
在终端运行
$ 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_KEY和HUBTEL_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)。请参阅 许可文件 了解更多信息。