定制 multek/laravel-onesignal 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

multek/laravel-onesignal

最新稳定版本:v1.0.0

Composer 安装命令:

composer require multek/laravel-onesignal

包简介

Laravel wrapper for the official OneSignal PHP SDK

README 文档

README

Laravel wrapper for the official OneSignal PHP SDK. Send push notifications, manage users, and track custom events with a clean, fluent API.

Also implements the laravel-customer-engagement driver contracts, so you can use OneSignal as a drop-in provider for the unified engagement platform.

Features

  • Push Notifications - Send to users, segments, or build complex payloads with a fluent builder
  • User Management - Create, update, and delete OneSignal users with tag sync
  • Custom Event Tracking - Track events for analytics and segmentation
  • Laravel Notification Channel - Send via Laravel's native notification system
  • Model Trait - HasOneSignal trait for syncing Eloquent models to OneSignal
  • Async Jobs - Queue-based user sync with SyncUserToOneSignal
  • Customer Engagement Driver - Implements EngagementDriver, SyncsUsers, SendsNotifications, and TracksEvents contracts
  • Events - NotificationSent and NotificationFailed events for observability

Requirements

  • PHP 8.2+
  • Laravel 11.0+

Installation

composer require multek/laravel-onesignal

Publish the config file:

php artisan vendor:publish --tag=onesignal-config

Add your credentials to .env:

ONESIGNAL_APP_ID=your-app-id
ONESIGNAL_REST_API_KEY=your-rest-api-key

Usage

Sending Notifications

use Multek\OneSignal\Facades\OneSignal;

// Simple push to a user
OneSignal::sendToUser('user_123', 'Hello!');

// Push to multiple users
OneSignal::sendToUsers(['user_1', 'user_2'], 'Hello everyone!');

// Push to a segment
OneSignal::sendToSegment('Active Users', 'New feature available!');

// Fluent builder for complex notifications
OneSignal::notification()
    ->toUser('user_123')
    ->heading('Order Shipped')
    ->body('Your order #456 has been shipped.')
    ->data(['order_id' => 456])
    ->send();

User Management

// Create a user with tags
OneSignal::createUser('user_123', ['plan' => 'pro', 'role' => 'admin']);

// Update tags
OneSignal::updateUserTags('user_123', ['plan' => 'enterprise']);

// Remove tags
OneSignal::removeUserTags('user_123', ['role']);

// Get user
OneSignal::getUser('user_123');

// Delete user
OneSignal::deleteUser('user_123');

Model Trait

use Multek\OneSignal\Concerns\HasOneSignal;

class User extends Authenticatable
{
    use HasOneSignal;
}

// Sync user to OneSignal
$user->syncToOneSignal();

Custom Event Tracking

// Track a single event
OneSignal::trackEvent('user_123', 'purchase', ['amount' => 99.90]);

// Track for multiple users
OneSignal::trackEventForUsers(['user_1', 'user_2'], 'promo_viewed', ['campaign' => 'summer']);

Laravel Notification Channel

use Multek\OneSignal\Messages\OneSignalMessage;

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

    public function toOneSignal($notifiable): OneSignalMessage
    {
        return (new OneSignalMessage)
            ->heading('Order Shipped')
            ->body('Your order has been shipped.');
    }
}

Accessing the Raw SDK

$api = OneSignal::api(); // Returns onesignal\client\api\DefaultApi

Configuration

See config/onesignal.php for all available options including default tags, queue name, and organization API key.

Customer Engagement Integration

When used with multek/laravel-customer-engagement, OneSignal registers itself as a driver automatically:

// config/customer-engagement.php
'default' => 'onesignal',

// Then use the unified API
use Multek\CustomerEngagement\Facades\Engagement;

Engagement::sendToUser('user_123', $notification);

Testing

composer test

License

MIT

统计信息

  • 总下载量: 1
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 2
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-04-01

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固