simonkub/laravel-sipgate-notifications

此包已被弃用,不再维护。作者建议使用 laravel-notification-channels/sipgate 包。

为 sipgate.de 定制的 Laravel 通知驱动程序

1.1.0 2019-09-30 09:56 UTC

This package is auto-updated.

Last update: 2019-10-23 13:55:33 UTC


README

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

此包使您能够使用 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 扩展的概念来识别您的账户中启用了发送短信的设备。在此上下文中,'设备' 一词不一定指硬件电话,而更可能是虚拟连接。

您可以按以下方式找到您的扩展:

  1. 登录您的 sipgate 账户
  2. 使用侧边栏导航到 连接Anschlüsse) 选项卡
  3. 点击 短信 (如果此选项未显示,您可能需要从功能商店预订 Web SMS 功能)
  4. 页面的 URL 应该是以下形式 https://app.sipgate.com/{...}/connections/sms/{smsId},其中 {smsId} 是您的 Web SMS 扩展。

使用自定义发送者号码发送短信

默认情况下,将使用 'sipgate' 作为发送者。只有通过验证该号码的所有权,才能将发送者更改为手机号码。为了完成此操作,请按照以下步骤操作:

  1. 登录您的 sipgate 账户
  2. 使用侧边栏导航到 连接Anschlüsse) 选项卡
  3. 点击 短信 (如果此选项未显示,您可能需要从功能商店预订 Web SMS 功能)
  4. 单击 主叫 ID 框右边的齿轮图标,并输入所需的发送者号码。
  5. 按照网站上的说明进行操作以验证该号码。

用法

创建通知

当您的凭据配置完成后,您可以在通知中使用 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)。有关更多信息,请参阅 许可证文件