composer require norkunas/onesignal-php-api
All API responses can be found at Official Documentation.
<?php
require __DIR__ . '/vendor/autoload.php';
use OneSignal\Config;
use OneSignal\Devices;
use OneSignal\OneSignal;
$config = new Config();
$config->setApplicationId('your_application_id');
$config->setApplicationAuthKey('your_application_auth_key');
$config->setUserAuthKey('your_auth_key');
$api = new OneSignal($config);
Possible options are listed at Official Documentation.
// Get the list of your OneSignal applications
$myApps = $api->apps->getAll();
// Get the information about your specific OneSignal application
$myApp = $api->apps->getOne('application_id');
$newApp = $api->apps->add([
'name' => 'app name',
'gcm_key' => 'key'
]);
$api->apps->update('application_id', ['name' => 'new app name']);
Possible options are listed at Official Documentation.
$devices = $api->devices->getAll();
$device = $api->devices->getOne('device_id');
$newDevice = $api->devices->add([
'device_type' => Devices::ANDROID,
'identifier' => 'abcdefghijklmn',
]);
$api->devices->update('device_id', [
'session_count' => 2,
]);
Possible options are listed at Official Documentation.
$notifications = $api->notifications->getAll();
$notification = $api->notifications->getOne('notification_id');
// Do not combine targeting parameters
$api->notifications->add([
'contents' => [
'en' => 'Notification message'
],
'included_segments' => ['All'],
'data' => ['foo' => 'bar'],
'isChrome' => true,
'send_after' => new \DateTime('1 hour'),
'tags' => [
[
'key' => 'level',
'relation' => '>',
'value' => '10',
],
[
'key' => 'madePurchase',
'relation' => '=',
'value' => 'true',
]
],
// ..other options
]));
$api->notifications->open('notification_id');
$api->notifications->cancel('notification_id');
use GuzzleHttp\Exception\RequestException;
use OneSignal\Exception\OneSignalException;
try {
$api->notifications->getOne('notification_id');
} catch (OneSignalException $e) {
$httpStatusCode = $e->getStatusCode();
$errors = $e->getErrors();
} catch (RequestException $e) {
$message = $e->getMessage();
}