sasa-b / apns2
APNS - Apple Push Notification Service PHP client
3.0.0
2024-01-31 15:26 UTC
Requires
- php: >=8.2
- ext-json: *
- ext-openssl: *
- firebase/php-jwt: ^5.2
- guzzlehttp/guzzle: ^7.2
- ramsey/uuid: ^4.1
Requires (Dev)
- phpunit/phpunit: ^9.5
README
APNS - Apple Push Notification Service PHP Client
Requirements
PHP >= 7.0
lib-curl >= 7.46.0 (with http/2 support enabled)
lib-openssl >= 1.0.2e
In case of PHP 7.0 you will need to compile PHP from source with the newer lib-curl which supports HTTP2 requests:
./configure --with-curl=/usr/local/include/curl --with-libdir=lib64 --with-openssl ...
./make
Installation
composer require sasa-b/apns2
Getting Started
Certificate Provider Trust
require '/vendor/autoload.php'; use SasaB\Apns\Client; use SasaB\Apns\Provider\Certificate; use SasaB\Apns\Payload\Aps; use SasaB\Apns\Payload\Alert; use SasaB\Apns\Notification; $certificate = Certificate::fromFile('/PushCert.pem'); $client = Client::auth($certificate); $notification = new Notification("{device_token}"); $notification->setAps(new Aps(new Alert('Hello World'))); $response = $client->send($notification); echo (string) $response->getApnsId()."\n"; echo $response;
Token Key Provider Trust
require '/vendor/autoload.php'; use SasaB\Apns\Client; use SasaB\Apns\Provider\JWT; use SasaB\Apns\Provider\TokenKey; use SasaB\Apns\Payload\Aps; use SasaB\Apns\Payload\Alert; use SasaB\Apns\Notification; $tokenKey = new TokenKey('{token_key}'); $tokenKey->loadFromFile('/AuthKey.p8'); $jwt = JWT::new('{team_id}', $tokenKey); if ($jwt->hasExpired()) { $jwt->refresh($tokenKey); } $client = Client::auth($jwt); $notification = new Notification("{device_token}"); $notification->setPushTopic('com.vendor.app'); $notification->setAps(new Aps(new Alert('Hello World'))); $response = $client->send($notification); echo (string) $response->getApnsId()."\n"; echo $response;