AWS SNS服务短信取消订阅

时间:2015-06-02 12:28:38

标签: java amazon-web-services amazon-sns aws-sdk

我正在使用AWS SNS服务将警报消息发送到用户手机。但是,用户取消订阅该主题仍然可以从该主题获取消息。停止让消息用户发送消息STOP .Following code snippet for creating and订阅主题。

CreateTopicRequest createTopicRequest = new CreateTopicRequest(topicName);
CreateTopicResult createTopicResult = snsClient.createTopic(createTopicRequest);

//Topic display name
SetTopicAttributesRequest setTopicAttributesRequest = new SetTopicAttributesRequest();
setTopicAttributesRequest.withTopicArn(createTopicResult.getTopicArn());
setTopicAttributesRequest.setAttributeName(topicAttributeName);
setTopicAttributesRequest.setAttributeValue(topicAttributeValue);
snsClient.setTopicAttributes(setTopicAttributesRequest);

SubscribeRequest subRequest = new SubscribeRequest(createTopicResult.getTopicArn(), "sms","12712438216");
snsClient.subscribe(subRequest);

2 个答案:

答案 0 :(得分:0)

这个怎么样?

  1. 列出所有订阅
  2. 循环直到找到endPoint(" 12712438216"),然后获取arn
  3. 执行unsubscribe()函数。

    ListSubscriptionsResult listResult = snsClient.listSubscriptions();
    List<Subscription> subscriptions = listResult.getSubscriptions();
    String arn="";
    for (Subscription subs : subscriptions) {
        if(subs.getProtocol().equals("sms") && subs.getEndpoint().equals("12712438216")) {
            arn = subs.getTopicArn();
            break;
        }
    }
    if(!arn.equals("")) {
        snsClient.unsubscribe(arn);
    }
    

答案 1 :(得分:0)

问这个问题时,这是AWS SNS的错误。