wassafr / push-server-bundle
Wassa Push Server bundle
2.0.1
2018-03-02 16:12 UTC
Requires
- php: ~5.4|~7.0
- nelmio/api-doc-bundle: ^2.11
- wassafr/push-server: ^1.0
README
WassaPushServerBundle 包允许您向iOS和Android设备发送推送通知。它使用自定义库发送GCM通知,并使用APNS-PHP发送APNS通知。
安装
在您的composer.json中要求wassafr/push-server-bundle
包,并更新您的依赖项。
$ composer require duccio/apns-php dev-master --no-update
$ composer require wassafr/push-server-bundle
在app/AppKernel.php
中注册该包
// app/AppKernel.php public function registerBundles() { return array( // ... new Wassa\MPSBundle\MPSBundle(), ); }
在routing.yml
中导入路由定义
# app/config/routing.yml wassa_mps_api: resource: "@WassaMPSBundle/Controller/API/" type: annotation prefix: /api/push
为了启用配置,我们建议向parameters.yml.dist添加参数,这样您可以在将包部署到具有不同配置的多台服务器时轻松更改它们
# app/config/parameters.yml.dist wassa_mps_gcm_api_key: wassa_mps_gcm_dry_run: false wassa_mps_apns_environment: sandbox wassa_mps_apns_prod_cert: ~ wassa_mps_apns_sand_cert: ~ wassa_mps_apns_ca_cert: ~ wassa_mps_entity_manager: ~
# app/config/parameters.yml wassa_mps_gcm_api_key: <gcm_key> wassa_mps_gcm_dry_run: false wassa_mps_apns_environment: sandbox wassa_mps_apns_prod_cert: <path_to_apns_prod_cert> wassa_mps_apns_sand_cert: <path_to_apns_sandbox_cert> wassa_mps_apns_ca_cert: <path_to_apns_rootca_cert> wassa_mps_entity_manager: ~
最后
# app/config/config.yml wassa_mps: gcm: api_key: "%wassa_mps_gcm_api_key%" dry_run: "%wassa_mps_gcm_dry_run%" apns: environment: "%wassa_mps_apns_environment%" prod_cert: "%wassa_mps_apns_prod_cert%" sand_cert: "%wassa_mps_apns_sand_cert%" ca_cert: "%wassa_mps_apns_ca_cert%" entity_manager: "%wassa_mps_entity_manager%"
发送推送
// AppBundle/Controller/YourController.php $mps = $this->get('wassa_mps'); $pushData = new PushData(); $pushData->setGcmPayloadData($gcmPayloadData); // $gcmPayloadData is an associative array $pushData->setGcmCollapseKey($gcmCollapsKey); $pushData->setApnsText($apnsText); $pushData->setApnsBadge($apnsBadge); $pushData->setApnsCategory($apnsCategory); $pushData->setApnsCustomProperties($apnsCustomProperties); // $apnsCustomProperties is an associative array $pushData->setApnsExpiry($apnsExpiry); $pushData->setApnsSound($apnsSound);
API
该包提供简单的API以进行设备注册。注册服务应以POST方式调用,以下为POST数据
{ "registrationToken": "<GCM_REGISTRATIONID_OR_APNS_DEVICETOKEN>", "platform": "<ios|android>", "customData": <CUSTOM_JSON_DATA> }
事件
该包触发以下事件
wassa_mps.registration.pre_check
:在调用注册API后,但在设备注册之前wassa_mps.registration.post_check
:设备注册后立即