zbox / unified-push
Unified Push 支持通过 APNs、GCM 和 MPNS 为 iOS、Android 和 Windows Phone 设备提供推送通知
0.9.2
2016-09-29 17:58 UTC
Requires
- php: >=5.3.2
- kriswallsmith/buzz: *
- psr/log: ^1.0
Suggests
- monolog/monolog: Allows more advanced logging of the application flow
This package is not auto-updated.
Last update: 2024-09-18 03:58:10 UTC
README
Unified Push 支持通过 APNs、GCM 和 MPNS 为 iOS、Android 和 Windows Phone 设备提供推送通知。
Wiki: UML 结构和序列图。
安装
推荐通过 composer 安装 UnifiedPush。
{ "require": { "zbox/unified-push": "^0.9" } }
特性
- 支持为平台发送推送通知的统一接口
- Apple (APNS)
- Android (GCM)
- Windows Phone (MPNS)
要求
- PHP 5.3.2 或更高版本
- HTTP 客户端 (kriswallsmith/buzz)
- PSR Log (psr/log)
- PHPUnit 运行测试
用法
配置通知服务客户端工厂
创建带有凭证的配置服务客户端工厂。
<?php use Zbox\UnifiedPush\NotificationService\ServiceClientFactory; use Zbox\UnifiedPush\NotificationService\ServiceCredentialsFactory; use Zbox\UnifiedPush\Utils\ClientCredentials\CredentialsMapper; $credentialsFactory = new ServiceCredentialsFactory( new CredentialsMapper() ); $credentials = ['certificate' => 'path', 'certificatePassPhrase' => 'pass']; $credentialsFactory->addCredentialsForService('APNS', $credentials); $clientFactory = new ServiceClientFactory($credentialsFactory); $clientFactory->setDefaultConfigPath();
初始化消息调度器
使用客户端工厂、通知构建器和响应处理器初始化类。
<?php use Zbox\UnifiedPush\Dispatcher; use Zbox\UnifiedPush\Notification\NotificationBuilder; use Zbox\UnifiedPush\NotificationService\ResponseHandler; $dispatcher = new Dispatcher( $clientFactory, new NotificationBuilder(), new ResponseHandler() ); $dispatcher->setDevelopmentMode(true);
创建消息
创建 APNS、GCM、MPNS(原始、瓷砖或吐司)类型消息。
<?php use Zbox\UnifiedPush\Message\MessageCollection; use Zbox\UnifiedPush\Message\Type\APNS as APNSMessage; use Zbox\UnifiedPush\Message\Type\APNSAlert; use Zbox\UnifiedPush\Message\Type\GCM as GCMMessage; $message1 = new APNSMessage(); $message1 ->setAlertDictionary( (new APNSAlert) ->setActionLocKey('btn') ->setLocKey('msg') ->setLocArgs([$args]) ) ->setSound('alert') ->getBadge('2'); $message1->addRecipient('deviceToken1'); $message2 = new GCMMessage(); $message2 ->setCollapseKey('key') ->addRecipientIdentifiers( new \ArrayIterator([ 'deviceToken1', 'deviceToken2' ]) ) ->setPayloadData([ 'keyA' => 'value1', 'keyB' => 'value2', ]); $messages = new MessageCollection([ $message1, $message2 ]);
调度消息
发送消息并加载反馈。
<?php $dispatcher ->dispatchAll($messages) ->loadFeedback();
状态
处理响应,查看调度错误报告。
<?php $responseHandler = $dispatcher->getResponseHandler(); $responseHandler->handleResponseCollection(); $invalidRecipients = $responseHandler->getInvalidRecipients(); $messageErrors = $responseHandler->getMessageErrors();
许可证
MIT,见 LICENSE。