et-soft / php-apns
Object Oriented PHP Apple Push Notification Integration Library
v0.0.10
2016-11-28 14:33 UTC
Requires
- php: >=5.3.0
- ext-openssl: *
- ext-zip: *
README
PHP Apple Push Notification Service Library
Install
Install PHP APNS using composer:
composer require jwage/php-apns
Generate Safari Notification Package
use JWage\APNS\Certificate; use JWage\APNS\Safari\PackageGenerator; $certificate = new Certificate(file_get_contents('apns.p12'), 'certpassword'); $packageGenerator = new PackageGenerator( $certificate, '/base/pushPackage/path', 'yourdomain.com' ); // returns JWage\APNS\Safari\Package instance $package = $packageGenerator->createPushPackageForUser('userid'); // send zip file to the browser echo $package->getZipPath();
If you need set Intermediate Certificate, example: AppleWWDRCA.pem (since 14 Feb 2016). Add path in constructor PackageGenerator:
... $packageGenerator = new PackageGenerator( $certificate, '/base/pushPackage/path', 'yourdomain.com', '/path/to/AppleWWDRCA.pem' ); ...
If you have AppleWWDRCA.cer, and you want to get PEM format. Try to call this command in UNIX console:
openssl x509 -in AppleWWDRCA.cer -inform DER -out AppleWWDRCA.pem -outform PEM
Sending Notifications
use JWage\APNS\Certificate; use JWage\APNS\Client; use JWage\APNS\Sender; use JWage\APNS\SocketClient; $certificate = new Certificate(file_get_contents('apns.pem')); $socketClient = new SocketClient($certificate, 'gateway.push.apple.com', 2195); $client = new Client($socketClient); $sender = new Sender($client); $sender->send('devicetoken', 'Title of push', 'Body of push', 'http://deeplink.com');