管理电话号码和 SMS 订阅 - Amazon Simple Notification Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

管理电话号码和 SMS 订阅

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

退出接收 SMS 消息

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

  • ARRET (法语)

  • CANCEL

  • END

  • OPT-OUT

  • OPTOUT

  • QUIT

  • REMOVE

  • STOP

  • TD

  • UNSUBSCRIBE

要退出,收件人必须回复相同的发端号码Amazon SNS 用于传递消息的信息。退订之后,接收人将不再接收从您的 Amazon Web Services 账户 除非您选择输入电话号码。

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

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

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

加入已退出的电话号码

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

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

  1. 登录到Amazon SNS 控制台

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

  3. 在导航面板上,选择 Text messaging (SMS) (文本消息(SMS))

  4. Text messaging (SMS) (文本消息(SMS)) 页面上,选择 View opted out phone numbers (查看已退出的电话号码)Opted out phone numbers 页面将显示已退出的电话号码。

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

删除 SMS 订阅

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

  1. 在导航面板中,选择订阅

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

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

删除主题

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

  1. 在导航面板上,选择主题

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

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

管理电话号码和订阅 (Amazon开发工具包)

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

注意

请务必在使用开发工具包之前配置您的 Amazon 凭证。有关更多信息,请参阅 。配置Amazon凭证中的Amazon SDK for .NET开发人员指南。或,请参阅使用凭证中的Amazon SDK for Java开发人员指南

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

要查看所有已退出的电话号码,请提交ListPhoneNumbersOptedOut请求与 Amazon SNS API 一起使用。

或者,您可以在Amazon开发工具包,如以下示例所示:

Amazon SDK for Java

通过 Amazon SDK for Java,您可以使用 AmazonSNSClient 类的 listPhoneNumbersOptedOut 方法:

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 SDK for .NET

通过 Amazon SDK for .NET,您可以使用 AmazonSimpleNotificationServiceClient 类的 ListPhoneNumbersOptedOut 方法:

public static void Main(String[] args) { AmazonSimpleNotificationServiceClient snsClient = new AmazonSimpleNotificationServiceClient(Amazon.RegionEndpoint.USWest2); ListOptOut(snsClient); } public static void ListOptOut(AmazonSimpleNotificationServiceClient snsClient) { String nextToken = null; do { ListPhoneNumbersOptedOutRequest listRequest = new ListPhoneNumbersOptedOutRequest { NextToken = nextToken }; ListPhoneNumbersOptedOutResponse listResponse = snsClient.ListPhoneNumbersOptedOut(listRequest); nextToken = listResponse.NextToken; foreach (String phoneNum in listResponse.PhoneNumbers) Console.WriteLine(phoneNum); } while (nextToken != null); }

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

检查电话号码是否已退出

要检查电话号码是否退出,请提交CheckIfPhoneNumberIsOptedOut请求与 Amazon SNS API 一起使用。

或者,您可以在Amazon开发工具包,如以下示例所示:

Amazon SDK for Java

通过 Amazon SDK for Java,您可以使用 AmazonSNSClient 类的 checkIfPhoneNumberIsOptedOut 方法:

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

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

{IsOptedOut: false}
Amazon SDK for .NET

使用AmazonSDK for .NET,您可以使用CheckIfPhoneNumberIsOptedOut方法AmazonSimpleNotificationServiceClient类:

CheckIfPhoneNumberIsOptedOutRequest request = new CheckIfPhoneNumberIsOptedOutRequest { PhoneNumber = phoneNumber }; Console.WriteLine(snsClient.CheckIfPhoneNumberIsOptedOut(request).IsOptedOut);

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

false

加入已退出的电话号码

要加入电话号码,请提交OptInPhoneNumber请求与 Amazon SNS API 一起使用。

或者,您可以在Amazon开发工具包,如以下示例所示:

Amazon SDK for Java

通过 Amazon SDK for Java,您可以使用 AmazonSNSClient 类的 optInPhoneNumber 方法:

snsClient.optInPhoneNumber(new OptInPhoneNumberRequest().withPhoneNumber(phoneNumber));
Amazon SDK for .NET

通过 Amazon SDK for .NET,您可以使用 AmazonSimpleNotificationServiceClient 类的 OptInPhoneNumber 方法:

snsClient.OptInPhoneNumber(new OptInPhoneNumberRequest { PhoneNumber = phoneNumber});

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

删除 SMS 订阅

要从 Amazon SNS 主题删除 SMS 订阅,请通过提交ListSubscriptions请求 Amazon SNS 然后将 ARN 传递给Unsubscribe请求.

或者,您可以在Amazon开发工具包,如以下示例所示:

Amazon SDK for Java

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

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

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

snsClient.unsubscribe(subscriptionArn);
Amazon SDK for .NET

通过 Amazon SDK for .NET,使用如下代码:

ListSubscriptionsResponse response = snsClient.ListSubscriptions(); // find the subscriptionArn you want foreach (Subscription sub in response.Subscriptions) Console.WriteLine(sub.SubscriptionArn); // unsubscribe snsClient.Unsubscribe(subscriptionArn);

删除主题

要删除主题及其所有订阅,请通过提交ListTopics请求 Amazon SNS 然后将 ARN 传递给DeleteTopic请求.

或者,您可以在Amazon开发工具包,如以下示例所示:

Amazon SDK for Java

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

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

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

snsClient.deleteTopic(topicArn);
Amazon SDK for .NET

使用AmazonSDK for .NET,请使用如下代码:

ListTopicsResponse restopics= snsClient.ListTopics(); // find the topicArn you want foreach (Topic t in restopics.Topics) Console.WriteLine(t.TopicArn); // delete snsClient.DeleteTopic(topicArn);