zgabievi/laravel-sender

SENDER.GE 对 Laravel 的集成

安装: 246

依赖: 0

建议者: 0

安全: 0

星标: 0

关注者: 1

分支: 0

开放问题: 0

类型:项目

0.5.2 2021-08-10 09:45 UTC

This package is auto-updated.

Last update: 2024-09-10 16:32:33 UTC


README

Packagist Packagist license

laravel-sender

目录

安装

要开始使用,您需要安装此包

composer require zgabievi/laravel-sender

如果您的 Laravel 版本低于 5.5,则将以下内容添加到您的 config/app.php 中的服务提供者中

'providers' => [
    ...
    Zorb\Sender\SenderServiceProvider::class,
    ...
];

您可以使用以下命令发布配置文件

php artisan vendor:publish --provider="Zorb\Sender\SenderServiceProvider"

此命令将复制您配置目录中的配置文件。

使用

发送消息

use Zorb\Sender\Enums\MessageStatus;
use Zorb\Sender\Enums\MessageType;
use Zorb\Sender\Facades\Sender;

class SenderController extends Controller
{
    //
    public function __invoke()
    {
        // recipient who should get sms
        $mobile_number = '5XXXXXXXX';
    
        // content of the message
        $message = 'Welcome, you are getting this message from integration';

        // type of the message
        $type = MessageType::Advertising; // MessageType::Information

        $result = Sender::send($mobile_number, $message, $type);
        
        if (isset($result->data[0])) {
            // $result->data[0]->messageId
            // $result->data[0]->statusId

            if ((int)$result->data[0]->statusId === MessageStatus::Delivered) {
                // message has been sent
            }
        } else {
            // message was not sent
        }
    }
} 

检查状态

use Zorb\Sender\Enums\MessageStatus;
use Zorb\Sender\Facades\Sender;

class SenderController extends Controller
{
    //
    public function __invoke()
    {
        // message id provided by send method
        $message_id = 0000;

        $result = Sender::check($message_id);
        
        if (isset($result->data[0])) {
            // $result->data[0]->messageId
            // $result->data[0]->statusId
            // $result->data[0]->timestamp

            if ((int)$result->data[0]->statusId === MessageStatus::Delivered) {
                // message has been delivered
            }
        } else {
            // message status check failed
        }
    }
} 

通知

您可以将此包用作通知通道。

use Illuminate\Notifications\Notification;
use Zorb\Sender\Notifications\SMSMessage;
use Zorb\Sender\Channels\SenderChannel;
use Illuminate\Support\Facades\Log;

class WelcomeNotification extends Notification
{
    //
    public function via($notifiable)
    {
        return [SenderChannel::class];
    }
    
    //
    public function toSender($notifiable): SMSMessage
    {
        return (new SMSMessage())
            ->content('Your message goes here.')
            ->recipient($notifiable->phone)
            ->callback(function ($response) { // optional
                // use response here
            });
    }
}

附加信息

消息类型

消息类型有自己的枚举 Zorb\Sender\Enums\MessageType

消息状态

消息状态有自己的枚举 Zorb\Sender\Enums\MessageStatus

配置

您可以使用以下变量配置环境文件

许可证

zgabievi/laravel-sender 使用 MIT 许可证 许可。