SetTopicAttributesRequest

SetTopicAttributesRequest

我正在使用AWS SNS服务将警报消息发送到用户电话。但是,用户退订该主题仍然会从该主题中获取消息。要停止让消息用户发送消息STOP。以下是用于创建和订阅主题的代码段。

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

最佳答案

这个怎么样?


列出所有订阅
循环直到找到endPoint(“ 12712438216”),然后获取arn
执行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);
}

07-24 09:39
查看更多