apns-php

WBOY
WBOYOriginal
2016-06-23 14:37:071952browse

sample_push.php<?php/** * @file * sample_push.php * * Push demo * * LICENSE * * This source file is subject to the new BSD license that is bundled * with this package in the file LICENSE.txt. * It is also available through the world-wide-web at this URL: * http://code.google.com/p/apns-php/wiki/License * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to aldo.armiento@gmail.com so we can send you a copy immediately. * * @author (C) 2010 Aldo Armiento (aldo.armiento@gmail.com) * @version $Id$ */// Adjust to your timezonedate_default_timezone_set('Europe/Rome');// Report all PHP errorserror_reporting(-1);// Using Autoload all classes are loaded on-demandrequire_once 'ApnsPHP/Autoload.php';// Instanciate a new ApnsPHP_Push object$push = new ApnsPHP_Push(        ApnsPHP_Abstract::ENVIRONMENT_SANDBOX,        'server_certificates_bundle_sandbox.pem');// Set the Root Certificate Autority to verify the Apple remote peer$push->setRootCertificationAuthority('entrust_root_certification_authority.pem');// Connect to the Apple Push Notification Service$push->connect();// Instantiate a new Message with a single recipient$message = new ApnsPHP_Message('1e82db91c7ceddd72bf33d74ae052ac9c84a065b35148ac401388843106a7485');// Set a custom identifier. To get back this identifier use the getCustomIdentifier() method// over a ApnsPHP_Message object retrieved with the getErrors() message.$message->setCustomIdentifier("Message-Badge-3");// Set badge icon to "3"$message->setBadge(3);// Set a simple welcome text$message->setText('Hello APNs-enabled device!');// Play the default sound$message->setSound();// Set a custom property$message->setCustomProperty('acme2', array('bang', 'whiz'));// Set another custom property$message->setCustomProperty('acme3', array('bing', 'bong'));// Set the expiry value to 30 seconds$message->setExpiry(30);// Add the message to the message queue$push->add($message);// Send all messages in the message queue$push->send();// Disconnect from the Apple Push Notification Service$push->disconnect();// Examine the error message container$aErrorQueue = $push->getErrors();if (!empty($aErrorQueue)) {        var_dump($aErrorQueue);}

 

sample_feedback.php

<?php/** * @file * sample_feedback.php * * Feedback demo * * LICENSE * * This source file is subject to the new BSD license that is bundled * with this package in the file LICENSE.txt. * It is also available through the world-wide-web at this URL: * http://code.google.com/p/apns-php/wiki/License * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to aldo.armiento@gmail.com so we can send you a copy immediately. * * @author (C) 2010 Aldo Armiento (aldo.armiento@gmail.com) * @version $Id$ */// Adjust to your timezonedate_default_timezone_set('Europe/Rome');// Report all PHP errorserror_reporting(-1);// Using Autoload all classes are loaded on-demandrequire_once 'ApnsPHP/Autoload.php';// Instanciate a new ApnsPHP_Feedback object$feedback = new ApnsPHP_Feedback(        ApnsPHP_Abstract::ENVIRONMENT_SANDBOX,        'server_certificates_bundle_sandbox.pem');// Connect to the Apple Push Notification Feedback Service$feedback->connect();$aDeviceTokens = $feedback->receive();if (!empty($aDeviceTokens)) {        var_dump($aDeviceTokens);}// Disconnect from the Apple Push Notification Feedback Service$feedback->disconnect();

 

sample_server.php

<?php/** * @file * sample_server.php * * Push server demo * * LICENSE * * This source file is subject to the new BSD license that is bundled * with this package in the file LICENSE.txt. * It is also available through the world-wide-web at this URL: * http://code.google.com/p/apns-php/wiki/License * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to aldo.armiento@gmail.com so we can send you a copy immediately. * * @author (C) 2010 Aldo Armiento (aldo.armiento@gmail.com) * @version $Id$ */// Adjust to your timezonedate_default_timezone_set('Europe/Rome');// Report all PHP errorserror_reporting(-1);// Using Autoload all classes are loaded on-demandrequire_once 'ApnsPHP/Autoload.php';// Instanciate a new ApnsPHP_Push object$server = new ApnsPHP_Push_Server(        ApnsPHP_Abstract::ENVIRONMENT_SANDBOX,        'server_certificates_bundle_sandbox.pem');// Set the Root Certificate Autority to verify the Apple remote peer$server->setRootCertificationAuthority('entrust_root_certification_authority.pem');// Set the number of concurrent processes$server->setProcesses(2);// Starts the server forking the new processes$server->start();// Main loop...$i = 1;while ($server->run()) {        // Check the error queue        $aErrorQueue = $server->getErrors();        if (!empty($aErrorQueue)) {                // Do somethings with this error messages...                var_dump($aErrorQueue);        }        // Send 10 messages        if ($i <= 10) {                // Instantiate a new Message with a single recipient                $message = new ApnsPHP_Message('1e82db91c7ceddd72bf33d74ae052ac9c84a065b35148ac401388843106a7485');                // Set badge icon to "i"                $message->setBadge($i);                // Add the message to the message queue                $server->add($message);                $i++;        }        // Sleep a little...        usleep(200000);}

 

Introduction

To send Push Notifications to a device, you need a device token. Device token is generated by Apple from Device ID and Application ID, so this is unique per device and per application.

Deprecated

Please, see the Objective-C Demo Project at http://code.google.com/p/apns-php/source/browse/trunk/Objective-C%20Demo

Code

/** * @file * Application delegate implementation. * * LICENSE * * This source file is subject to the new BSD license that is bundled * with this package in the file LICENSE.txt. * It is also available through the world-wide-web at this URL: * http://code.google.com/p/apns-php/wiki/License * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to aldo.armiento@gmail.com so we can send you a copy immediately. *  * @version $Id$ */#import "AppDelegate.h"@implementation AppDelegate@synthesize window;#pragma mark -#pragma mark Application delegate- (void)applicationDidFinishLaunching:(UIApplication *)application {  [window makeKeyAndVisible];    #if !TARGET_IPHONE_SIMULATOR  [application registerForRemoteNotificationTypes:   UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound];  #endif}#pragma mark -#pragma mark Remote notifications- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {  // You can send here, for example, an asynchronous HTTP request to your web-server to store this deviceToken remotely.  NSLog(@"Did register for remote notifications: %@", deviceToken);}- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error {  NSLog(@"Fail to register for remote notifications: %@", error);}#pragma mark -#pragma mark Memory management/** * Deallocates the memory occupied. */- (void)dealloc {  [window release];  [super dealloc];}@end

 

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Previous article:PHP BOTNext article:php header