PHP AWS SNS SDK - 徽章

标签 php amazon-web-services amazon-sns

简单的问题,如何使用 AWS SNS 在推送通知中发送徽章编号?

我发现它必须以某种方式格式化为 json 格式,但不确定该怎么做。

AWS 文档没有该信息,或者至少我没有找到。

谢谢!

到目前为止,我的代码有效:

    $sns = SnsClient::factory(array(
        'key' => $this->app()->getConfig()->get('aws.sns.key'),
        'secret' => $this->app()->getConfig()->get('aws.sns.secret'),
        'region' => $this->app()->getConfig()->get('aws.sns.region'),
    ));

    $payload = [
        'Message' => $this->_message,
        'TargetArn' => $this->_device->getDeviceArn()
    ];

    $sns->publish($payload);

最佳答案

首先看一下这个AWS开发者论坛 article

总结一下这篇文章,在您的示例中,_message 需要看起来像这样:

{"APNS":"{\"aps\":{\"alert\":\"<message>\"}}"}

你需要添加

'MessageStructure' => 'json',

$payload

这是我用来构建消息 JSON 的代码:

    $contents = array(); 
    $contents['badge'] = "1"; 
    $contents['alert'] = addslashes($push_message); 
    $contents['sound'] = "default"; 
    $push = array("aps" => $contents); 
    $push_json = json_encode($push);

    $json = json_encode(array('APNS' => $push_json));

    $sns->publish(array('MessageStructure' => 'json',
            'Message' => $json,
            'TargetArn' => $endpointArn));

希望这对您有所帮助!

关于PHP AWS SNS SDK - 徽章,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27029384/

相关文章:

php - 禁止不需要的客户端请求使用 PHP 文件

php - 计算频率

php - 如何在 Bitnami (Wordpress) 中更新 PHP MEMORY_LIMIT 的本地值

amazon-web-services - Glue 爬虫从分区的 S3 存储桶中创建了多个表

php - 验证用户在 php 中输入的数据

php - Zend framework 2 - 提交表单错误时使表单字段变粘

android - 按 boolean 属性过滤 DynamoDBScanExpression

amazon-web-services - 如何在AWS CloudFormation中使用电子邮件动态列表进行SNS主题订阅?

javascript - 使用 Amazon SNS 推送通知( Node )

ruby-on-rails - 从 AWS Elastic Transcoder 作业中检索文件和缩略图 URL