Amazon Simple Notification Service
开发人员指南 (API Version 2010-03-31)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

管理电话号码和 SMS 订阅

Amazon SNS 提供了多个用于管理账户 SMS 消息接收者的选项。在限定的频率内,您可以将已选择不从您的账户接收 SMS 消息的电话号码重新加入。若要停止向 SMS 订阅发送消息,您可以删除订阅或发布至订阅的主题。

退出接收 SMS 消息

如果当地法律和法规有要求 (例如美国和加拿大),SMS 收件人可以使用自己的设备,通过向该消息回复以下内容来表示退出:

  • ARRET (法语)

  • CANCEL

  • END

  • OPT-OUT

  • OPTOUT

  • QUIT

  • REMOVE

  • STOP

  • TD

  • UNSUBSCRIBE

要退出,收件人必须回复 Amazon SNS 用于传输消息的相同的长代码或者段代码。退出后,收件人将不再接收从您的 AWS 账户传输的 SMS 消息,除非您重新加入其电话号码。

如果电话号码订阅了 Amazon SNS 主题,退出不会删除订阅,而是 SMS 消息将无法传输至该订阅,除非您重新加入其电话号码。

管理电话号码和订阅(控制台)

您可以使用 Amazon SNS 控制台控制哪些电话号码从您的账户接收 SMS 消息。

加入已退出的电话号码

您可以查看哪些电话号码已退出来自您的账户的 SMS 消息,并重新加入这些电话号码,以便继续向其发送消息。

对于每个电话号码,您只能每隔 30 天重新加入一次。

  1. 通过以下网址登录 AWS 管理控制台 并打开 Amazon SNS 控制台:https://console.amazonaws.cn/sns/v2/home

  2. 在控制台菜单上,将区域选择器设置为支持 SMS 消息的区域

  3. 在导航窗格中,选择 Text messaging (SMS)

  4. Text messaging (SMS) 页面上,选择 View opted out phone numbersOpted out phone numbers 页面将显示已退出的电话号码。

  5. 选中您想要重新加入的电话号码的复选框,然后选择 Opt in。电话号码将不再处于退出状态,并将接收您发送的 SMS 消息。

删除 SMS 订阅

删除 SMS 订阅可停止在您发布至主题时向该电话号码发送 SMS 消息。

  1. 在导航窗格中,选择 Subscriptions

  2. 选中您想要删除的订阅的复选框。然后选择 Actions,再选择 Delete Subscriptions

  3. Delete 窗口中,选择 Delete。Amazon SNS 将删除订阅并显示成功消息。

删除主题

当您不想再向其订阅终端节点发布消息时,可删除主题。

  1. 在导航窗格中,选择 Topics

  2. 选中您想要删除的主题的复选框。然后选择 Actions,再选择 Delete Topics

  3. Delete 窗口中,选择 Delete。Amazon SNS 将删除主题并显示成功消息。

管理手机号码和订阅(AWS 开发工具包)

您可以使用 AWS 开发工具包向 Amazon SNS 提交编程请求,并管理哪些电话号码可以从您的账户收到 SMS 消息。

查看所有已退出的电话号码

要查看所有已退出的电话号码,请使用 Amazon SNS API 提交 ListPhoneNumbersOptedOut 请求。例如,通过 AWS SDK for Java,您可以使用 AmazonSNSClient 类的 listPhoneNumbersOptedOut 方法:

Copy
public static void main(String[] args) { AmazonSNSClient snsClient = new AmazonSNSClient(); listOptOut(snsClient); } public static void listOptOut(AmazonSNSClient snsClient) { String nextToken = null; do { ListPhoneNumbersOptedOutResult result = snsClient .listPhoneNumbersOptedOut(new ListPhoneNumbersOptedOutRequest() .withNextToken(nextToken)); nextToken = result.getNextToken(); for (String phoneNum : result.getPhoneNumbers()) { System.out.println(phoneNum); } } while (nextToken != null); }

Amazon SNS 返回分页响应,此示例在每次 Amazon SNS 返回下一个令牌时重复请求。运行此示例时,它会在 IDE 的控制台输出窗口中显示所有已退出的电话号码的列表。

检查电话号码是否已退出

要检查电话号码是否退出,请使用 Amazon SNS API 提交 CheckIfPhoneNumberIsOptedOut 请求。例如,使用,AWS SDK for Java,您可以使用 AmazonSNSClient 类的 checkIfPhoneNumberIsOptedOut 方法:

Copy
CheckIfPhoneNumberIsOptedOutRequest request = new CheckIfPhoneNumberIsOptedOutRequest().withPhoneNumber(phoneNumber); System.out.println(snsClient.checkIfPhoneNumberIsOptedOut(request));

运行此示例时,true 或 false 结果会显示在 IDE 控制台的输出窗口中:

Copy
{IsOptedOut: false}

加入已退出的电话号码

要加入电话号码,请使用 Amazon SNS API 提交 OptInPhoneNumber 请求。例如,使用,AWS SDK for Java,您可以使用 AmazonSNSClient 类的 optInPhoneNumber 方法:

Copy
snsClient.optInPhoneNumber(new OptInPhoneNumberRequest().withPhoneNumber(phoneNumber));

对于每个电话号码,您只能每隔 30 天重新加入一次。

删除 SMS 订阅

要从 Amazon SNS 主题删除 SMS 订阅,请使用 Amazon SNS API 提交 ListSubscriptions 请求来获取订阅 ARN,然后将该 ARN 传递给 Unsubscribe 请求。

例如,通过 AWS SDK for Java,您可以使用 AmazonSNSClient 类的 listSubscriptions 方法获取订阅的 ARN。

Copy
ListSubscriptionsResult result = snsClient.listSubscriptions(); for (Subscription sub : result.getSubscriptions()) { System.out.println(sub); }

您可以通过将订阅的 ARN 作为字符串参数传递给 unsubscribe 方法来删除订阅:

Copy
snsClient.unsubscribe(subscriptionArn);

删除主题

要删除主题及其所有订阅,请使用 Amazon SNS API 提交 ListTopics 请求来获取主题的 ARN,然后将该 ARN 传递给 DeleteTopic 请求。

例如,通过 AWS SDK for Java,您可以使用 AmazonSNSClient 类的 listTopics 方法获取主题的 ARN。

Copy
ListTopicsResult result = snsClient.listTopics(); for (Topic t : result.getTopics()) { System.out.println(t); }

您可以通过将主题的 ARN 作为字符串参数传递给 deleteTopic 方法来删除主题:

Copy
snsClient.deleteTopic(topicArn);