使用消息属性发送原始 WNS 通知

Sending raw WNS notifications using message attributes

我正在尝试通过设置消息属性向 WNS 发送原始通知,但似乎发送的是 toast 通知。

这是我用来构建发布请求的 C# 代码。

var request = new PublishRequest()
{
    TopicArn = TOPIC_ARN,
    Message = "Test Message",
    MessageAttributes = new Dictionary<string, MessageAttributeValue>()
    {
        { "AWS.SNS.MOBILE.WNS.Type", new MessageAttributeValue() { StringValue = "wns/raw", DataType = "String" } }
    }
};

据我所知,我正在使用 SNS 正确设置 X-WNS-Type Message Attributes,但通知仍作为客户端上的 toast 收到。有没有人成功做到这一点的例子?

我能够通过使用 MessageStructure 让它工作。将值设置为 json 并更新 Message 以获得专门针对 WNS 的消息就可以了。我的假设是 MessageAttributes 的 WNS 值仅适用于专门为 WNS 定义的消息。

var request = new PublishRequest()
{
    TopicArn = TOPIC_ARN,
    Message = "{ \"default\": \"default message\", \"WNS\" : \"raw message\"}",
    MessageAttributes = new Dictionary<string, MessageAttributeValue>()
    {
        { "AWS.SNS.MOBILE.WNS.Type", new MessageAttributeValue() { StringValue = "wns/raw", DataType = "String" } }
    },
    MessageStructure = "json",
};