level51 / silverstripe-onesignal
Silverstripe module wrapper for OneSignal PHP SDK
Installs: 182
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 0
Open Issues: 0
Type:silverstripe-vendormodule
Requires
- norkunas/onesignal-php-api: ^2.1
- nyholm/psr7: ^1.3
- silverstripe/framework: ^4
- symfony/http-client: ^5.1
Requires (Dev)
- phpunit/phpunit: ^5.7
This package is auto-updated.
Last update: 2024-11-29 06:16:39 UTC
README
Silverstripe module wrapper for OneSignal PHP SDK.
Provides a class OneSignalService
for creating/sending notifications.
Use convenience classes Notification
and NotificationResponse
for handling request and response payload.
Requirements
- Silverstripe ^4.0
- OneSignal PHP SDK
norkunas/onesignal-php-api
- PSR-18 HTTP client (e.g.
symfony/http-client
) - PSR-17 HTTP factories (e.g.
nyholm/psr7
)
Installation
composer require level51/silverstripe-onesignal
Documentation
The module is based on the OneSignal API for PHP.
At the moment, only the Notifications API is being used.
This project adheres PSR-2.
Config
Two env vars and one config value are mandatory when initializing OneSignalService
.
OneSignalException
is thrown if not configured properly.
Environment
Define the following vars in your .env
file.
ONESIGNAL_AUTH_KEY
(defined on account/profile level)ONESIGNAL_APP_AUTH_KEY
Since the auth keys are sensitive data, it's recommended to not have them included in any VCS.
Config API
app_id
Example:
Level51\OneSignal\OneSignalService: app_id: 'xxxxxx-0000-xxxx-0000-xxxxxxxxxx'
Usage
Send a simple notification.
try { $notification = Notification::create() ->addHeading('en', 'My first notification') ->addContent('en', 'Yay, my Silverstripe app created this') ->addData('myVar', 'foo'); $response = OneSignalService::singleton()->createNotification($notification); if (!$response->isError()) { echo 'Notification with id ' . $response->getId() . ' was sent to ' . $response->getRecipientsCount() . ' recipients'; } } catch (OneSignalException $e) {}
Make sure to provide a supported locale for addHeading()
and addContent()
.
Maintainer
- Julian Scheuchenzuber js@lvl51.de