brandonhudson / onesignal-php-api
PHP 的 OneSignal API
Requires
- php: ^7.3
- ext-json: *
- psr/http-client: ^1.0
- psr/http-client-implementation: ^1.0
- psr/http-factory: ^1.0
- psr/http-factory-implementation: ^1.0
- symfony/options-resolver: ^3.4|^4.0|^5.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.16
- nyholm/psr7: ^1.2
- symfony/http-client: ^5.0
- symfony/phpunit-bridge: ^5.0
- dev-master / 2.0.x-dev
- v2.0.3
- v2.0.2
- v2.0.1
- v2.0.0
- v1.14.1
- v1.14.0
- v1.13.0
- 1.12.0
- 1.11.0
- 1.10.0
- 1.9.0
- 1.8.0
- 1.7.0
- v1.6.0
- v1.5.0
- v1.4.0
- v1.3.0
- v1.2.0
- v1.1.0
- 1.0.x-dev
- v1.0.4
- v1.0.3
- v1.0.2
- v1.0.1
- v1.0.0
- v1.0.0-rc2
- v1.0.0-rc1
- v0.2.0
- 0.1.x-dev
- v0.1.17
- v0.1.16
- v0.1.15
- v0.1.14
- v0.1.13
- v0.1.12
- v0.1.11
- v0.1.10
- v0.1.9
- v0.1.8
- v0.1.7
- v0.1.6
- v0.1.5
- v0.1.4
- v0.1.3
- v0.1.2
- v0.1.1
- v0.1.0
This package is auto-updated.
Last update: 2024-09-07 11:34:47 UTC
README
安装
注意:所有示例均针对 v2,如果您使用 PHP <7.3,请阅读 v1 文档。
此包需要 PSR-18 HTTP 客户端和 PSR-17 HTTP 工厂才能工作。您可以从 psr/http-client-implementation 和 psr/http-factory-implementation 中选择任何一项。
使用 Symfony HttpClient 和 nyholm/psr7 http 工厂作为示例,使用 Composer 进行安装
composer require symfony/http-client nyholm/psr7 brandonhudson/onesignal-php-api
现在配置 OneSignal API 客户端
<?php declare(strict_types=1); use OneSignal\Config; use OneSignal\OneSignal; use Symfony\Component\HttpClient\Psr18Client; use Nyholm\Psr7\Factory\Psr17Factory; require __DIR__ . '/vendor/autoload.php'; $config = new Config('your_application_id', 'your_application_auth_key', 'your_auth_key'); $httpClient = new Psr18Client(); $requestFactory = $streamFactory = new Psr17Factory(); $oneSignal = new OneSignal($config, $httpClient, $requestFactory, $streamFactory);
如何使用此库
应用程序 API
查看您当前所有 OneSignal 应用程序的详细信息(官方文档)
$myApps = $oneSignal->apps()->getAll();
查看单个 OneSignal 应用程序的详细信息(官方文档)
$myApp = $oneSignal->apps()->getOne('application_id');
创建新的 OneSignal 应用程序(官方文档)
$newApp = $oneSignal->apps()->add([ 'name' => 'app name', 'gcm_key' => 'key' ]);
更新 OneSignal 应用程序的名或配置设置(官方文档)
$oneSignal->apps()->update('application_id', [ 'name' => 'new app name' ]);
创建段(官方文档)
$oneSignal->apps()->createSegment('application_id', [ 'name' => 'Segment Name', 'filters' => [ ['field' => 'session_count', 'relation' => '>', 'value' => 1], ['operator' => 'AND'], ['field' => 'tag', 'relation' => '!=', 'key' => 'tag_key', 'value' => '1'], ['operator' => 'OR'], ['field' => 'last_session', 'relation' => '<', 'value' => '30,'], ], ]);
删除段(官方文档)
$oneSignal->apps()->deleteSegment('application_id', 'segment_id');
设备 API
查看您的 OneSignal 应用程序中多个设备的详细信息(官方文档)
$devices = $oneSignal->devices()->getAll();
查看您配置的 OneSignal 应用程序中现有设备的详细信息(官方文档)
$device = $oneSignal->devices()->getOne('device_id');
将新设备注册到您的配置的 OneSignal 应用程序(官方文档)
use OneSignal\Api\Devices; $newDevice = $oneSignal->devices()->add([ 'device_type' => Devices::ANDROID, 'identifier' => 'abcdefghijklmn', ]);
更新您配置的 OneSignal 应用程序中现有设备的详细信息(官方文档)
$oneSignal->devices()->update('device_id', [ 'session_count' => 2, ]);
通知 API
查看多个通知的详细信息(官方文档)
$notifications = $oneSignal->notifications()->getAll();
获取单个通知的详细信息(官方文档)
$notification = $oneSignal->notifications()->getOne('notification_id');
创建并发送通知或电子邮件到段或单个用户。您可以使用此方法通过三种方式之一定位用户:通过段、通过过滤器或通过设备(至少必须指定一个定位参数)(官方文档)
$oneSignal->notifications()->add([ 'contents' => [ 'en' => 'Notification message' ], 'included_segments' => ['All'], 'data' => ['foo' => 'bar'], 'isChrome' => true, 'send_after' => new \DateTime('1 hour'), 'filters' => [ [ 'field' => 'tag', 'key' => 'is_vip', 'relation' => '!=', 'value' => 'true', ], [ 'operator' => 'OR', ], [ 'field' => 'tag', 'key' => 'is_admin', 'relation' => '=', 'value' => 'true', ], ], // ..other options ]);
标记通知为已打开(《官方文档》)
$oneSignal->notifications()->open('notification_id');
取消已安排或当前正在发出的通知(《官方文档》)
$oneSignal->notifications()->cancel('notification_id');
通知历史(《官方文档》)
$oneSignal->notifications()->history('notification_id', [ 'events' => 'clicked', // or 'sent' 'email' => 'your_email@email.com', ]);
有问题?
如果您有任何疑问,请打开一个问题。
许可证
此库是在MIT许可证下发布的。有关详细信息,请参阅附带LICENSE文件。