A set of classes to create and manage the Apple Push Notifications lifecycle.
PHP JavaScript
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
classes
client
resources
AUTHORS
COPYING
README
config.php
processFeedback.php
processFeeds.php
processMessageQueue.php
registerDevice.php

README

Apple Push Notification Server.
------------------------------

These script allow you to manage push notifications for one or more apps.

FEATURES:

* Multiple App management.
* Multiple Certificate Management (Development/Production).
* Sample web form to submit push notifications.
* Monitor RSS feeds.
* Single connection per certificate to the APNS servers.
* Message queue.
* Apple Feedback processing to remove devices that should not subscribed any more. 
* Send push notifications only to test devices.

REQUIREMENTS:

* PHP 5.x
* mySQL 

PORTS:
It requires ports 2195 and 2196 to communicate with the APNS servers.


INSTALL:

* Create a new mySQL DB. 
* Run the "resources/APNS.sql" file to create the DB tables. 
* Customise the 'config.php' file.

SETUP YOUR APP:

* Copy your ck.pem certificates to the certificates folder. 'ck' means the certificate and key components are contained on the same file.
* Add an app entry to the mySQL 'Apps' table.
* Add a certificate to the mySQL 'Cerficates' table.
* Add an entry to the 'CertificateServer' table.


BASIC USAGE:

1) Registering new devices:
	
	Your iPhone apps can register new devices by calling a URL in this form:
	http://YOURDOMAIN.COM/registerDevice.php?appId=YOURAPPId&deviceToken=YOURDEVICETOKEN

2) Submit messages to the queue:

	To submit a message to the subscribed devices use the following:
	http://YOURDOMAIN.COM/subscriptionForm.php

3) Send messages to the devices from the message queue:

	http://YOURDOMAIN.COM/processMessageQueue.php

4) Process feedback:

	http://YOURDOMAIN.COM/processFeedback.php


ADVANCED USAGE:

At the moment don't provide documentation for setting up RSS feeds and creating multiple subscriptions with an app. But should be easy to setup by just looking at the project code.

* Feeds are registered via the registerDevice.php script by passing the 'feedUrl' and 'feedEnable' parameters.
* processFeeds.php should run as a cron job or schedule task.
* Multiple subscriptions within an app are registered by passing the 'appSubscriptionId' parameter.

SCHEDULING:

Ideally the processMesageQueue.php script should run from a cron job or scheduled task.
After running processMesageQueue.php you should run processFeedback.php to get 
notified of devices that no longer have the appId installed.


SECURITY:

Please store these scripts in a secure folder so they are not access
by non authorised users.

I hope you enjoy these scripts! Please fork :)