et-soft/php-apns

Object Oriented PHP Apple Push Notification Integration Library

v0.0.10 2016-11-28 14:33 UTC

This package is auto-updated.

Last update: 2024-04-29 03:32:29 UTC


README

PHP Apple Push Notification Service Library

Build Status Scrutinizer Quality Score Code Coverage Latest Stable Version Total Downloads Dependency Status

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');