simonkub / laravel-sipgate-notifications
Requires
- php: >=7.2
- guzzlehttp/guzzle: ^6.3
- illuminate/notifications: ~5.5 || ~6.0
- illuminate/support: ~5.5 || ~6.0
Requires (Dev)
- mockery/mockery: ^1.2
- phpunit/phpunit: ^8.0
This package is auto-updated.
Last update: 2019-10-23 13:55:33 UTC
README
此包使您能够使用 sipgate 与 Laravel 5.5+ 和 6.0 发送通知变得简单。
此包已迁移到另一个组织。请参阅 https://github.com/laravel-notification-channels/sipgate
内容
安装
通过 composer 安装包
composer require simonkub/laravel-sipgate-notifications
设置 sipgate 服务
扩展 config/services.php
以从您的 .env
中读取 sipgate 凭据
return [ ... 'sipgate' => [ 'username' => env('SIPGATE_USERNAME'), 'password' => env('SIPGATE_PASSWORD'), 'smsId' => env('SIPGATE_SMSID'), 'enabled' => env('SIPGATE_NOTIFICATOINS_ENABLED', true), ] ];
将您的 sipgate 凭据添加到您的 .env
SIPGATE_NOTIFICATOINS_ENABLED=true SIPGATE_USERNAME=mail@example.com SIPGATE_PASSWORD=1234567890 SIPGATE_SMSID=s0
Web SMS 扩展 / SMS ID
Web SMS 扩展由字母 's' 后跟一个数字组成(例如 s0
)。sipgate API 使用 Web SMS 扩展的概念来识别您的账户中启用了发送短信的设备。在此上下文中,'设备' 一词不一定指硬件电话,而更可能是虚拟连接。
您可以按以下方式找到您的扩展:
- 登录您的 sipgate 账户
- 使用侧边栏导航到 连接 (Anschlüsse) 选项卡
- 点击 短信 (如果此选项未显示,您可能需要从功能商店预订 Web SMS 功能)
- 页面的 URL 应该是以下形式
https://app.sipgate.com/{...}/connections/sms/{smsId}
,其中{smsId}
是您的 Web SMS 扩展。
使用自定义发送者号码发送短信
默认情况下,将使用 'sipgate' 作为发送者。只有通过验证该号码的所有权,才能将发送者更改为手机号码。为了完成此操作,请按照以下步骤操作:
- 登录您的 sipgate 账户
- 使用侧边栏导航到 连接 (Anschlüsse) 选项卡
- 点击 短信 (如果此选项未显示,您可能需要从功能商店预订 Web SMS 功能)
- 单击 主叫 ID 框右边的齿轮图标,并输入所需的发送者号码。
- 按照网站上的说明进行操作以验证该号码。
用法
创建通知
当您的凭据配置完成后,您可以在通知中使用 sipgate
通道。
class ExampleNotification extends Notification { public function via($notifiable) { return ['sipgate']; } public function toSipgate($notifiable) { return SipgateMessage::create('Your message goes here…'); } }
添加收件人
您可以选择将收件人号码添加到消息本身
public function toSipgate($notifiable) { return SipgateMessage::create('Your message goes here…')->recipient('00491234567890'); }
或者将一个 routeNotificationForSipgate
方法添加到您的通知类中
class User extends Authenticatable { use Notifiable; public function routeNotificationForSipgate($notification) { return $this->phone_number; } }
如果您都定义了,消息将被发送到您在消息中定义的号码
按需发送通知
如果您想向未在您的应用程序中注册的人发送通知,请使用按需通知
Notification::route('sipgate', '00491234567890') ->notify(new ExampleNotification($message));
可用的消息方法
public function toSipgate($notifiable) { return (new SipgateMessage('Your message goes here…')) ->message('…or here') ->recipient('00491234567890') ->sendAt(time() + 60) ->smsId('s0'); }
可选:为了发送延迟消息,设置未来的日期和时间(最多一个月内)
$message->sendAt(time() + 60);
注意:
sendAt
方法接受一个 Unix 时间戳。
常见问题
短信已成功发送但未收到消息
可能的原因有
- 错误的或输入错误的电话号码
- 收件人电话未连接到网络
- 长消息文本 - 交付可能需要更长的时间
HTTP 错误
原因 | 错误代码 |
---|---|
无效请求(例如,请求体字段为空或只包含空格,时间戳无效等) | 400 |
用户名和/或密码错误 | 401 |
账户余额不足 | 402 |
没有权限使用指定的 SMS 扩展(例如,SMS 功能未预订,用户密码必须在 Web 应用 中重置) | 403 |
内部服务器错误或未处理的无效请求(例如,smsId 未设置) |
500 |
资源
变更日志
有关最近更改的更多信息,请参阅 变更日志。
测试
$ composer test
安全
如果您发现任何与安全相关的问题,请通过电子邮件发送到 mail@simonkubiak.de,而不是使用问题跟踪器。
贡献
有关详细信息,请参阅 贡献指南。
鸣谢
许可证
MIT 许可证(MIT)。有关更多信息,请参阅 许可证文件。