jmrieger / onesignal-laravel
为 Illuminate 实现的 OneSignal 推送包装器
1.1.1
2019-12-09 13:47 UTC
Requires
- php: >=5.5
- guzzlehttp/guzzle: ^6.2
- illuminate/support: 4.*|5.*
- symfony/psr-http-message-bridge: ^0.2.0
Requires (Dev)
- vlucas/phpdotenv: ^2.2
This package is not auto-updated.
Last update: 2024-09-27 13:43:10 UTC
README
警告!
截至 2018/12/12,该项目未积极维护。我强烈建议您考虑其他维护良好的包,例如 berkayk/onesignal-laravel
简介
这是一个 OneSignal v1 API 的包装器。它支持 API 当前支持的所有操作。
安装(Laravel 和 Lumen)
使用 composer 安装此包。
composer require jmrieger/onesignal-laravel composer update
Laravel 用户
更新 config/app.php
并添加以下条目。
'providers' => [ // ... jmrieger\OneSignal\OneSignalServiceProvider::class ]; 'aliases' => [ // ... 'OneSignal' => jmrieger\OneSignal\OneSignalFacade::class ];
Lumen 用户
更新 bootstrap/app.php
,添加以下条目
$app->register( \jmrieger\OneSignal\OneSignalServiceProvider::class ); class_alias( 'jmrieger\OneSignal\OneSignalFacade', 'OneSignal' );
配置
需要更新 3 个设置:您的默认 OneSignal 应用 ID、REST API 密钥和用户身份验证密钥。所有这些项目都可以在 OneSignal 网站的控制面板中找到。
首先,发布 onesignal 配置
php artisan vendor:publish
将 3 个密钥放入您的 .env 文件中,如下所示
ONESIGNAL_APP_ID=
ONESIGNAL_REST_API_KEY=
ONESIGNAL_USER_AUTH_KEY=
用法
有一个函数用于每个 OneSignal API 调用。它们在此处拆分。
注意:在所有要求提供 $app_id 的实例中,省略它将获取在 .env 文件中指定的默认 OneSignal 应用 ID
应用
getApps() - 获取用户的全部应用
$response = OneSignal::getApps();
getApp( $app_id ) - 获取给定的应用
postapp( $data ) - 创建新的应用
putApp( $app_id, $data ) - 更新应用
玩家
getPlayers( $app_id, $limit, $offset ) - 从应用获取玩家
getPlayer( $id ) - 获取给定 ID 的玩家
postPlayer ( $data, $app_id ) - 将玩家添加到应用
putPlayer( $data, $app_id ) - 更新应用中的玩家对象
postCSVExport( $app_id ) - 获取应用的全部玩家的 CSV 数据
postPlayerOnSession( $data ) - 为此玩家启动新的设备会话
postPlayerOnPurchase( $data ) - 跟踪此玩家的购买
postPlayerOnFocus( $data ) - 增加玩家的总会话时长
通知
getNotifications( $app_id, $limit, $offset ) - 获取应用的所有通知
getNotification( $id, $app_id ) - 获取应用中的通知
postNotification( $data, $app_id ) - 将通知添加到应用
$response = OneSignal::postNotification([
"tags" => [ ["key" => "myKey", "relation" => "=", "value" => 1 ] ],
"contents" => ["en" => "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean et iaculis enim. Sed egestas porttitor laoreet."],
"headings" => ["en" => "Aliquam consectetur odio sed"],
]);
putNotificationTrackOpen( $id, $app_id, $opened ) - 跟踪通知是否被打开
deleteNotification( $id, $app_id ) - 从应用中删除通知
参考
官方 OneSignal API 文档在此列出: https://documentation.onesignal.com/docs/server-api-overview
鸣谢
该项目受 https://github.com/berkayk/laravel-onesignal 启发并由此发展而来