liliom / laravel-onesignal
Laravel 对 OneSignal Web API 的包装器
Requires
- php: >=5.5.9
- guzzlehttp/guzzle: ^6.2
- illuminate/support: 4.*|5.*
- symfony/psr-http-message-bridge: 1.*
Requires (Dev)
- laravel/laravel: 5.*
- vlucas/phpdotenv: ^2.2
This package is auto-updated.
Last update: 2024-08-26 11:43:07 UTC
README
介绍
这是一个简单的 OneSignal 包装库,用于 Laravel。它通过定义的方法简化了基本的推送通知流程。您可以向所有用户发送消息,也可以向单个用户发送通知。在开始安装此服务之前,请先在 https://onesignal.com 上完成您的 OneSignal 设置,并完成获取应用程序 ID 和 REST API 密钥的所有必要步骤。
安装
首先,您需要使用 Composer 引入此包
composer require liliom/laravel-onesignal
Laravel 5.5 及以上版本
您无需做任何事情,此包使用包自动发现功能,在您通过 Composer 安装后应立即可用。
Laravel 5.4 及以下版本
通过在 config/app.php
中添加以下服务提供者来更新您的配置。
'providers' => [ // ... // ... Liliom\OneSignal\OneSignalServiceProvider::class, // ... ];
然后,通过在别名部分添加条目来注册类别名
'aliases' => [ // ... 'OneSignal' => Liliom\OneSignal\OneSignalFacade::class ];
最后,通过运行以下命令发布配置文件
php artisan vendor:publish --provider="Liliom\OneSignal\OneSignalServiceProvider"
php artisan vendor:publish --provider="Laravelme\Acquaintances\AcquaintancesServiceProvider"
上述命令将发布一个名为 onesignal.php
的配置文件,其中包含您的 OneSignal 授权密钥。
配置
请填写 config/onesignal.php
文件。其中 app_id
是您的 OneSignal 应用程序 ID,而 rest_api_key
是您的 REST API 密钥,其中 user_auth_key
为可选。
或者,您也可以在 .env
文件中填写您的设置,如下所示
ONE_SIGNAL_APP_ID=
ONE_SIGNAL_REST_API_KEY=
使用方法
向所有用户发送通知
您可以使用以下命令轻松地向所有已注册用户发送消息
OneSignal::sendNotificationToAll("Some Message", $url = null, $data = null, $buttons = null, $schedule = null);
其中,$url
、$data
、$buttons
和 $schedule
字段是特例。如果提供 $url
参数,则用户将被重定向到该 URL。
基于标签/过滤器发送通知
您可以使用以下命令基于一组标签发送消息
OneSignal::sendNotificationUsingTags("Some Message", ["key" => "device_uuid", "relation" => "=", "value" => 123e4567-e89b-12d3-a456-426655440000], $url = null, $data = null, $buttons = null, $schedule = null);
向特定用户发送通知
在将用户的令牌存储在表中后,您可以使用以下方式发送消息
OneSignal::sendNotificationToUser("Some Message", $userId, $url = null, $data = null, $buttons = null, $schedule = null);
其中,$userId
是用户在注册通知时的唯一 ID。有关详细信息,请参阅 https://documentation.onesignal.com/docs/web-push-tagging-guide。其中,$url
、$data
、$buttons
和 $schedule
字段是特例。如果提供 $url
参数,则用户将被重定向到该 URL。
通过电子邮件地址向特定用户发送通知
如果您使用将 userId 设置为用户的电子邮件地址的选项,请使用以下函数
OneSignal::sendNotificationToUserByEmail("Some Message", $email, $filters = [], $segment = ['All'], $url = null, $data = null, $buttons = null, $schedule = null, $smallIcon = null, $LargeIcon = null, $bigPicture = null, $androidAccentCircleColor = null, $androidAccentLedColor = null, $sound = null )
向特定段发送通知
您可以使用以下方式向特定段发送通知
OneSignal::sendNotificationToSegment("Some Message", $segment, $url = null, $data = null, $buttons = null, $schedule = null);
其中,$url
、$data
、$buttons
和 $schedule
字段是特例。如果提供 $url
参数,则用户将被重定向到该 URL。
发送自定义通知
您可以使用以下方式发送自定义消息
OneSignal::sendNotificationCustom($parameters);
### Sending a Custom Notification
发送异步自定义通知
您可以使用以下方式发送异步自定义消息
OneSignal::async()->sendNotificationCustom($parameters);
有关所有可自定义参数的详细信息,请参阅 https://documentation.onesignal.com/reference。