liliom/laravel-onesignal

Laravel 对 OneSignal Web API 的包装器

v1.0.1 2018-06-23 12:55 UTC

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