wassafr/push-server-bundle

Wassa Push Server bundle

安装次数: 147

依赖者: 0

建议者: 0

安全性: 0

星星: 1

关注者: 4

分支: 0

开放问题: 0

类型:symfony-bundle

2.0.1 2018-03-02 16:12 UTC

This package is auto-updated.

Last update: 2024-08-29 03:21:01 UTC


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:设备注册后立即