首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AWS云监视事件发布主题不起作用:IOS无声推送

AWS云监视事件发布主题不起作用:IOS无声推送
EN

Stack Overflow用户
提问于 2017-07-10 10:16:54
回答 1查看 343关注 0票数 0

我想通过SNS定期发送一个无声的推送。这是由Cloudwatch事件触发的。推送消息会发出,但是它是作为原始文本发送的,并且不会被SNS转换成无声的推送格式。正如你所看到的,SNS主题发布的作品很好,无声的推送就会熄灭。我做错什么了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-15 14:34:36

不要纠结于此,将其发送到lambda函数,在那里您可以创建JSON请求。

代码语言:javascript
复制
public String handle(JsonObject request, Context lambdaContext) throws 
BadRequestException, InternalErrorException {
    logger = lambdaContext.getLogger();
    Map<String, MessageAttributeValue> messageAttributes = new HashMap<>();
    AmazonSNSClient client = new AmazonSNSClient().withRegion(Regions.EU_WEST_1);

    PublishRequest rq = new PublishRequest();
    rq.setTopicArn(ENDPOINT_TOPIC);
    rq.setMessageStructure("json");
    rq.setMessage(getSilentAppleMessage());
    messageAttributes.put("AWS.SNS.MOBILE.APNS.TTL", new MessageAttributeValue().withDataType("String").withStringValue("120"));
    rq.setMessageAttributes(messageAttributes);
    client.publish(rq);
    GeneralResponse output = new GeneralResponse();
    output.setSuccess(true);
    return getGson().toJson(output, GeneralResponse.class);
}

public static String getSilentAppleMessage() {
    Map<String, Object> mainMessageMap = new HashMap<String, Object>();
    Map<String, Object> appleMessageMap = new HashMap<String, Object>();
    Map<String, Object> appMessageMap = new HashMap<String, Object>();

    appMessageMap.put("content-available", 1);
    appleMessageMap.put("aps", appMessageMap);
    mainMessageMap.put("default", "");
    mainMessageMap.put("APNS_SANDBOX", jsonify(appleMessageMap));

    logger.log(jsonify(mainMessageMap));
    return jsonify(mainMessageMap);
}

private static String jsonify(Object message) {
    try {
        return objectMapper.writeValueAsString(message);
    } catch (Exception e) {
        e.printStackTrace();
        throw (RuntimeException) e;
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45009451

复制
相关文章

相似问题

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