jmrieger/onesignal-laravel

为 Illuminate 实现的 OneSignal 推送包装器

1.1.1 2019-12-09 13:47 UTC

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 启发并由此发展而来