khidirdotid / laravel-onesignal
Laravel 的 OneSignal 包装器
支持包维护!
www.buymeacoffee.com/ladumor
Requires
- php: ^8.1
- ext-curl: *
- ext-json: *
- illuminate/console: ^10.0|^11.0
- illuminate/support: ^10.0|^11.0
Requires (Dev)
- mockery/mockery: ~0.9
- phpunit/phpunit: ^10.0
This package is auto-updated.
Last update: 2024-09-13 05:29:37 UTC
README
Laravel One Signal 是 Laravel 对 One Signal 的包装器。One Signal 是一个向用户发送推送通知的出色平台。该包在 One Signal 的官方文档中有所提及。您可以在这里查看 这里
如果这个包对您非常有用,请给它一个星。它是免费的 😆
🎞️ 这里有一些视频教程
如何安装以及如何实现通知和设备 API。
如何实现 Segment 和 Apps API。
内容
在这里观看其他 Laravel 教程
安装
使用以下命令安装包:
composer require ladumor/one-signal:0.4.4
发布配置文件
运行以下命令发布配置文件:
php artisan vendor:publish --provider="Ladumor\OneSignal\OneSignalServiceProvider"
添加提供者
如果使用的是 Laravel 旧版本,请将提供者添加到 config/app.php
文件的 provider
部分:
Ladumor\OneSignal\OneSignalServiceProvider::class,
添加外观
将外观添加到 config/app.php
文件的 aliases
部分:
'OneSignal' => \Ladumor\OneSignal\OneSignal::class,
添加 ENV 数据
将您的 API 密钥和 OneSignal 应用 ID 添加到 .env
文件中:
ONE_SIGNAL_APP_ID=XXXXXX-XXXXXX-XXXXXX-XXXXXX (YOUR APP ID)
ONE_SIGNAL_AUTHORIZE=XXXXXX (REST API KEY)
ONE_SIGNAL_AUTH_KEY=XXXXXXX (YOUR USER AUTH KEY)
您可以在代码中使用以下方式调用它们:
使用
发送推送通知
要发送推送通知,请通过调用 sendPush
方法:
$fields['include_player_ids'] = ['xxxxxxxx-xxxx-xxx-xxxx-yyyyyyyyy'];
$message = 'hey!! this is test push.!'
OneSignal::sendPush($fields, $message);
可选地,您可以这样获取通知的 ID:
$notificationID = OneSignal::sendPush($fields, $message);
echo $notificationID["id"];
取消通知
要取消通知,请通过调用 cancelNotification
方法:
$notificationID = 'xxxxxxxx-xxxx-xxx-xxxx-yyyyyyyyy';
OneSignal::cancelNotification($notificationID);
自定义内容
您可以自定义内容并将其作为字段传递。当您传递内容时,不需要 message 字段。
$fields['include_player_ids'] = ['xxxxxxxx-xxxx-xxx-xxxx-yyyyyyyyy'];
$fields['contents'] = array(
"en" => 'English Message',
"es" => 'Spanish Message',
);
OneSignal::sendPush($fields);
获取所有通知
要检索所有通知,请通过调用 getNotifications
方法:
OneSignal::getNotifications();
您可以在此处查看返回的响应格式 这里
获取单个通知
要检索单个通知,请通过调用 getNotification
方法并传递 ID 参数:
OneSignal::getNotification($notificationId);
您可以在此处查看返回的响应格式 这里
获取所有设备
要检索所有用户设备,请通过调用 getDevices
方法:
OneSignal::getDevices();
您可以在此处查看返回的响应格式 这里
获取单个设备
要检索单个设备,请通过调用 getDevice
方法并传递 ID 参数:
OneSignal::getDevice($deviceId);
您可以在此处查看返回的响应格式 这里
创建设备
要向您的应用程序添加设备,请通过调用 addDevice
方法,如果要在不同的应用程序中创建设备,可以在 $fields
数组中指定 app_id
。
$fields = [
'device_type' => 0,
'identifier' => '7abcd558f29d0b1f048083e2834ad8ea4b3d87d8ad9c088b33c132706ff445f0',
'timezone' => '-28800',
'game_version' => '1.1',
'device_os' => '7.0.4',
'test_type' => 1,
'device_model' => "iPhone 8,2",
'tags' => array("foo" => "bar")
];
return OneSignal::addDevice($fields);
您可以在此处查看支持的参数和指南 这里
更新设备
要更新您的应用程序中的设备,请通过调用 addDevice
方法,如果要在不同的应用程序中更新设备,可以在 $fields
数组中指定 app_id
。
$fields = [
'device_type' => 0,
'identifier' => '7abcd558f29d0b1f048083e2834ad8ea4b3d87d8ad9c088b33c132706ff445f0',
'timezone' => '-28800',
'game_version' => '1.1',
'device_os' => '7.0.4',
'test_type' => 1,
'device_model' => "iPhone 8,2",
'tags' => array("foo" => "bar")
];
$playerId = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
return OneSignal::updateDevice($fields, $playerId);
您可以在这里查看支持的参数和指南。
删除设备
在您的应用程序中删除现有设备
OneSignal::deleteDevice($deviceId);
创建分段
注意:需要ONE-SIGNAL付费计划
要在您的应用程序中添加新的分段,请通过调用createSegment
方法:
$fields = [
'name' => 'iOS, Android, Web',
"filters" => array("field" => "device_type", "relation" => "=", "value" => "Android"),
];
return OneSignal::createSegment($fields);
您可以在这里查看支持的参数和指南。
OneSignal::deleteSegment('YOUR_SEGMENT_ID')
删除分段
注意:需要ONE-SIGNAL付费计划
您可以在这里查看更多指南。
应用程序
注意*:认证密钥必须在one-signal.php中设置
如何获取认证密钥?
查看应用
查看您所有当前OneSignal应用程序的详细信息
$apps = OneSignal::getApps();
您可以在这里查看API响应。
查看应用
通过传递应用程序ID来查看您当前OneSignal应用程序或其他应用程序的详细信息。
// It's return default site which is configured in config.
$app = OneSignal::getApp();
// you can specify app id as wel but it's optional
$app = OneSignal::getApp('YOUR_APP_ID');
您可以在这里查看API响应。
创建应用
创建新的OneSignal应用程序。
$fields = array(
'name' => "TestByMe"
);
OneSignal::createApp($fields);
您可以在这里查看支持的参数和指南。
更新应用
更新新的OneSignal应用程序。
$fields = array(
'name' => "TestByMe"
);
OneSignal::updateApp($fields);
// you can pass second param as a appId if you want to update other app.. default take from config.
您可以在这里查看支持的参数和指南。
查看结果
更新新的OneSignal应用程序。
$fields = array(
'outcome_names' => "os__click.count",
'outcome_time_range' => '1h',
'outcome_platform' => 0,
'outcome_attribution' => 'direct'
);
OneSignal::getOutcomes($fields); // with params
OneSignal::getOutcomes(); // without any params
// you can pass params in this method, it's optional.
您可以在这里查看支持的参数和指南。
用户设备
您可以使用一条命令生成用户设备API:
php artisan one-signal.userDevice:publish
此命令生成以下文件:
- UserDeviceAPIController
- UserDeviceAPIRepository
- UserDevice(模型)
- 迁移
此外,请记住将以下路由添加到api.php
文件中。
use App\Http\Controllers\API\UserDeviceAPIController;
Route::post('user-device/register', [UserDeviceAPIController::class, 'registerDevice']);
Route::get('user-device/{playerId}/update-status', [UserDeviceAPIController::class, 'updateNotificationStatus']);
变更日志
请在此处查看变更日志
许可协议
MIT许可证(MIT)。请参阅许可证文件以获取更多信息