任何使用Node.js与Amazon SNS和Apple推送通知的人?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (140)

我正在寻找使用node.js与Amazon SNS和Apple APN推送通知的示例。我们使用亚马逊作为我们的托管服务,之前我使用过SNS,这非常简单。但是他们用于推送通知的示例是针对java的,并且没有针对Node的示例。像往常一样,这很让人困惑,我希望能够缩短我的研究和时间。它不是那么难。我也想知道他们如何处理错误,以及沙盒和生产之间的差异。苹果公司在这两种环境之间的反应有所不同,而不是像沙盒中那样在沙盒中失败。

提问于
用户回答回答于

它最终不会那么困难,只是弄清楚文档是不愉快的。需要在控制台中为SNS主题创建主要终端,这是最简单的方法,包括加载证书。然后,您使用createPlatformEnpoint为每个设备ID创建一个端点。这将返回另一个SNS主题,即该设备的特定主题,然后用于发送该邮件。

所以,下面的工作将单个消息发送给一个客户端。如果你想发送一个集体,不知道你可以做到这一点。也不知道你如何处理苹果的反馈,你应该检查失败的发送。

config = require("./config.js").config;

var token = "1234567898123456789";

var AWS = require('aws-sdk');

AWS.config.update({accessKeyId: config.AWSAccessKeyId, secretAccessKey: config.AWSSecretKey});
AWS.config.update({region: config.AWSRegion});

var sns = new AWS.SNS();

var params = {'PlatformApplicationArn':config["AWSTargetARN"],'Token':token};

var message = 'Test';
var subject = 'Stuff';

sns.createPlatformEndpoint(params,function(err,EndPointResult)
{
    var client_arn = EndPointResult["EndpointArn"];

    sns.publish({
    TargetArn: client_arn,
    Message: message,
    Subject: subject},
        function(err,data){
        if (err)
        {
            console.log("Error sending a message "+err);
        }
        else
        {
            console.log("Sent message: "+data.MessageId);

        }
    });
});
用户回答回答于

我已经写了一篇关于让它安装的博客文章http://evanshortiss.com/development/mobile/2014/02/22/sns-push-notifications-using-nodejs.html

我还有一个比AWS SDK更易于使用的Node.js包装器模块,因为我已经为文档工作过。它支持iOS和Android推送服务(就像我测试/使用过的一切),管理字符串以外的消息格式并公开事件:https//npmjs.org/package/sns-mobile

我没有使用主题来管理端点,但不确定是否是一个问题。您只需通过SNS控制台创建PlatformEndpoints。

扫码关注云+社区

领取腾讯云代金券