【问题标题】:AWS SNS SMS - Programmatically remove a phone number from the opt-out list (i.e. opt-in)AWS SNS SMS - 以编程方式从选择退出列表中删除电话号码(即选择加入)
【发布时间】:2021-09-04 05:30:00
【问题描述】:

似乎不可能使用 AWS 命令​​行 API(或 Java SDK)来选择退出 SMS 的电话号码(通过发送 STOP 消息)。这是一个命令行示例(已编辑电话号码):

> aws sns check-if-phone-number-is-opted-out --phone-number "612XXXYYYY"
{ "isOptedOut": false }

因此需要国家/地区代码。补充一点,我看到选择退出是否带有“+”:

> aws sns check-if-phone-number-is-opted-out --phone-number "+1612XXXYYYY"
{ "isOptedOut": true }

> aws sns check-if-phone-number-is-opted-out --phone-number "1612XXXYYYY"
{ "isOptedOut": true }

然后我尝试重新选择该号码:

> aws sns opt-in-phone-number --phone-number "+1612XXXYYYY"
An error occurred (InvalidParameter) when calling the OptInPhoneNumber operation: Invalid parameter: 

> aws sns opt-in-phone-number --phone-number "1612XXXYYYY"
An error occurred (InvalidParameter) when calling the OptInPhoneNumber operation: Invalid parameter: 

> aws sns opt-in-phone-number --phone-number "612XXXYYYY"

没有国家代码的最后一个不会返回错误,但它也不会做任何事情:

> aws sns check-if-phone-number-is-opted-out --phone-number "1612XXXYYYY"
{ "isOptedOut": true }

为了好玩,这里是 Java SDK 版本,它也不起作用:

SnsClient snsClient = SnsClient.builder().region(Region.US_WEST_2).build();
OptInPhoneNumberResponse response = snsClient.optInPhoneNumber(b -> b.phoneNumber("1612XXXYYYY"));

有没有办法以编程方式从 SMS 退出列表中删除电话号码?我可以使用 Web 控制台手动完成,但这无济于事。

【问题讨论】:

    标签: amazon-web-services sms amazon-sns


    【解决方案1】:

    根据OptInPhoneNumber 的 Amazon SNS 文档:

    您只能每 30 天选择一次

    【讨论】:

      【解决方案2】:

      上述命令/代码可用于反转 STOP 请求,但仅适用于一次。显然,在发送第二个 STOP 回复后,AWS 将不再允许您选择再次使用该电话号码接收 SMS 消息。因此,如果您想支持多个 STOP->START 序列,如果您必须在 Pinpoint 中“启用自我管理的退出”并自行处理。

      【讨论】:

        猜你喜欢
        • 2023-02-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-03-07
        • 1970-01-01
        • 2013-06-07
        相关资源
        最近更新 更多