首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AmazonSimpleNotificationServiceClient -如何在没有“默认值”的情况下使用包含自定义有效负载的TargetArn进行PublishRequest?

AmazonSimpleNotificationServiceClient -如何在没有“默认值”的情况下使用包含自定义有效负载的TargetArn进行PublishRequest?
EN

Stack Overflow用户
提问于 2022-09-13 14:39:11
回答 1查看 146关注 0票数 0

我有:

  1. 编写了运行中的Android应用程序,接收FCM通知。
  2. 安装Amazon : Mobile:Push通知。
  3. 我能够通过“每个传递协议的自定义有效负载”使用Amazon控制台发布消息。

{ "GCM":"{“数据”:{ "MyTitle":“示例端点”,"MyMessage":“重要”}

Amazon控制台-发布消息

  1. 我运行的Android应用程序只能接收到“数据”的信息。这是我期望得到的。

"{MyTitle=Sample端点,MyMessage=Important}“

Android收到消息

  1. 使用"AmazonSimpleNotificationServiceClient“AWSSDK.SimpleNotificationService 3.7.4.3编写了一个发布请求的AWSSDK.SimpleNotificationService应用程序,试图以与Amazon控制台完全相同的方式发布消息。我能成功地出版。

Visual .NET应用程序

  1. 我运行的Android接收到了消息,但是消息被包装在“默认”属性中。这是意料之外的,我希望从Amazon控制台收到相同的消息。

{default={"GCM":"{“数据”:{"MyTitle":“示例端点”,"MyMessgae“:"Criticald”}

Android收到消息

  1. 我试图利用PublishRequest.MessageSturcture来"json“(这需要”默认“属性才能发布)。我删除了它,消息自动用“默认”包装。
  2. 如何从.NET应用程序发送自定义原始消息,就像我可以从Amazon控制台发送“每个传递协议的自定义有效负载”一样?我想发布到“平台端点ARN”。
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-06 23:52:54

从AWS控制台发送消息与使用AmazonSimpleNotificationServiceClient发送消息不同。

您需要构造"PublishRequest“对象。

  • 设置"MessageStructure = json“
  • 使用TargetArn / TopicArn。
  • Message =需要以特定的格式。这是强制性的“默认”成员与虚拟数据后面的"GCM“或"APNS”."GCM“的内容是一个字符串,而不是子节点。

这是一个工作代码:

代码语言:javascript
复制
        // Android Payload
        string payload = "\\\"data\\\":{\\\"MyTitle\\\":\\\"test message \\\", \\\"MyMessage\\\": \\\"Important\\\"}";

        // iOS Payload
        //string payload = "\\\"notification\\\" : {\\\"content_available\\\" : true }, \\\"data\\\": { \\\"MyTitle\\\": \\\"Sample message for iOS endpoints\\\", \\\"MyMessage\\\":\\\"Hello world\\\",\\\"Payload\\\": {\\\"InstructionID\\\": \\\"f7a87860-11f4-47e1-8a39-3da2ffd6eadb\\\",\\\"IsAlert\\\": false,\\\"Content\\\": \\\"This is new content\\\",\\\"Value\\\": 2.554,\\\"Counter\\\": 290,\\\"DateTime\\\": \\\"2022-09-11T16:13:57.2009482Z\\\"}}";
        var request = new PublishRequest
        {   
            Message = "{\"default\": \"default message\",\"GCM\":\"{" + payload + "}\"}",
            TargetArn = fcmARN,
            MessageStructure = "json"
        };
        
        try
        {
            var response = await snsClient.PublishAsync(request);
            if (response.HttpStatusCode.Equals(HttpStatusCode.OK))
                Console.WriteLine("Message Sent to Topic");
            else
                Console.WriteLine("Failed - Message Sent to Topic");
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex);
        }

示例消息:在这里输入图像描述

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73704905

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档