AWS简单通知服务(SNS)中有没有办法跟踪所有取消订阅的用户



我们使用AWS SNS(简单通知服务)作为向用户发送通知的机制之一。这意味着,有通过短信(使用AWS SNS)/电子邮件/自动呼叫发送的通知。

但任何时候,如果用户取消订阅这三种方法中的任何一种,我们都应该停止在所有三种模式下向用户发送进一步的警报。

目前,我在API中没有办法检查订阅请求是否已被选择退出(通过发送STOP消息),这样我们也可以阻止其他两种通信模式。

这可能吗,在SNS?我试着查看了API、控制台和亚马逊论坛的列表。

我已经发现,AWS SNS(针对SMS端点)的以下行为可以是一种变通方法。

尽管目前没有办法通过响应STOP到30304(亚马逊的短号码)来获得取消订阅的端点(用户)列表

但是,当我们为用户订阅某个主题时,AWS会创建一个订阅记录,其中subscriptionArn="PendingConfirmation"

如果用户响应STOP(选择退出),则订阅记录将从主题中删除。如果用户订阅了它,订阅的subscriptionArn将从"PendingConfirmation"更改为一些有效的ARN(亚马逊资源编号)。

ListSubscriptionsByTopic API列出用户订阅,即使它处于"PendingConfirmation"状态。

因此,就目前而言,了解用户是否已取消订阅该主题的唯一方法是,维护一个用户列表及其终点(电话号码/电子邮件ID),并在稍后将其与可用订阅列表进行比较。如果有什么东西消失了,那就意味着他们已经取消了订阅。

当然,它不可能是实时的。但这是目前唯一可用的解决方法。

作为附加信息,如果订阅挂起时间超过72小时,则会自动删除。

最新更新