macellan/onesignal

OneSignal 通知渠道用于 Laravel

v2.0 2024-08-01 08:11 UTC

This package is auto-updated.

Last update: 2024-09-01 08:23:46 UTC


README

Tests Latest Stable Version Total Downloads

此包使得使用 OneSignal 向 Laravel 9.0、10.0、11.0 发送推送通知变得简单。

此插件仅使用 OneSignal Player ID 发送通知。

安装

您可以通过 composer 安装此包

composer require macellan/onesignal

设置

将您的 OneSignal appId 添加到 config/services.php 配置文件中

// config/services.php
...
    'onesignal' => [
        'app_id' => env('ONESIGNAL_APP_ID', ''),
    ],
...

用法

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

use Illuminate\Notifications\Notification;
use Macellan\OneSignal\OneSignalMessage;

class AccountApproved extends Notification
{
    public function via($notifiable)
    {
        return ['onesignal'];
    }

    public function toOneSignal($notifiable)
    {
        return OneSignalMessage::create()
            ->setSubject('Awesome App')
            ->setBody('Your account was approved!');  
    }
}

您可以通过添加 setAppId() 方法来更改特定通知的 appId

   public function toOneSignal($notifiable)
    {
        return OneSignalMessage::create()
            ->setAppId('Other AppId')
    }

在您的可通知模型中,确保包含 routeNotificationForOneSignal() 方法。

public function routeNotificationForOneSignal()
{
    return $this->player_id;
}

按需通知

有时您可能需要向非“用户”发送通知。使用 Notification::route 方法,在发送通知之前可以指定临时的通知路由信息

Notification::route('onesignal', 'player_id')  
            ->notify(new AccountApproved());

致谢