gpt4 book ai didi

node.js - 有人将 Node.js 与 Amazon SNS 和 Apple 推送通知一起使用吗?

转载 作者:IT老高 更新时间:2023-10-28 23:00:55 29 4
gpt4 key购买 nike

我正在寻找将 node.js 与 Amazon SNS 和 Apple APN 推送通知结合使用的示例。我们使用 Amazon 进行托管,我之前使用过 SNS,这很简单。但是他们提供的推送通知示例是针对 java 的,没有针对 Node.js 的示例。像往常一样,这很令人困惑,我希望减少我的研究和花费的时间。不可能那么难。我也想知道他们如何处理错误,以及沙盒和生产之间的差异。 Apple 在两种环境中的 react 不同,不会像在生产环境中那样在沙盒中失败。

最佳答案

结果并没有那么难,只是发现文档令人不快。您需要在控制台中为 SNS 主题创建主端点,这是迄今为止最简单的方法,包括加载证书。然后,您使用 createPlatformEnpoint 为每个设备 ID 创建一个端点。这将返回另一个特定于该设备的 SNS 主题,然后您可以使用该主题来发送消息。

因此,以下工作将单个消息发送到单个客户端。如果你想集体发送一些东西,不确定你能做到这一点。也不确定您如何处理 Apple 的反馈,您应该检查发送失败。

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);

}
});
});

关于node.js - 有人将 Node.js 与 Amazon SNS 和 Apple 推送通知一起使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21609121/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com