本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon SNS 提供了多个用于管理账户 SMS 消息接收者的选项。在限定的频率内,您可以将已选择不从您的账户接收 SMS 消息的电话号码重新加入。若要停止向 SMS 订阅发送消息,您可以删除订阅或发布至订阅的主题。
退出接收 SMS 消息
如果当地法律和法规有要求(例如美国和加拿大),SMS 收件人可以使用自己的设备,通过向该消息回复以下内容来表示退出:
-
ARRET(法语)
-
CANCEL
-
END
-
OPT-OUT
-
OPTOUT
-
QUIT
-
REMOVE
-
STOP
-
TD
-
UNSUBSCRIBE
要退出,收件人必须回复 Amazon SNS 用于传输消息的相同发起号码。选择退出后, AWS 账户 除非您选择使用电话号码,否则收件人将不再收到您发送的 SMS 消息。
如果电话号码订阅了 Amazon SNS 主题,退出不会删除订阅,而短信将无法传输至该订阅,除非您重新加入其电话号码。
使用 Amazon SNS 控制台管理手机号码和订阅
您可以使用 Amazon SNS 控制台控制哪些电话号码从您的账户接收 SMS 消息。
加入已选择退出 Amazon SNS 控制台的电话号码
您可以查看哪些电话号码已退出来自您的账户的短信,并重新加入这些电话号码,以便继续向其发送消息。
对于每个电话号码,您只能每隔 30 天重新加入一次。
登录 Amazon SNS 控制台
。 -
在控制台菜单上,将区域选择器设置为支持 SMS 消息收发的区域。
-
在导航面板上,选择文本消息(SMS)。
-
在移动文本消息(SMS) 页面的已退出的电话号码部分中,将显示已退出的电话号码。
-
选中您想要加入的电话号码的复选框,然后选择选择加入。电话号码将不再处于退出状态,并将接收您发送的 SMS 消息。
在 Amazon SNS 控制台中删除短信订阅
删除 SMS 订阅可停止在您发布至主题时向该电话号码发送 SMS 消息。
-
在导航面板中,选择订阅。
-
选中要删除的订阅的复选框。然后选择 Actions,再选择 Delete Subscriptions。
-
在 Delete(删除)窗口中,选择 Delete(删除)。Amazon SNS 将删除订阅并显示成功消息。
在 Amazon SNS 控制台中删除主题
当您不想再向其订阅终端节点发布消息时,可删除主题。
-
在导航面板上,选择主题。
-
选中要删除的主题的复选框。然后选择 Actions,再选择 Delete Topics。
-
在 Delete(删除)窗口中,选择 Delete(删除)。Amazon SNS 删除主题并显示成功消息。
使用 AWS SDK 管理手机号码和订阅
您可以使用向 Amazon SNS 发出编程请求,并管理哪些电话号码可以从您的账户接收短信。 AWS SDKs
要使用 S AWS DK,必须使用您的凭据对其进行配置。有关更多信息,请参阅《工具参考指南》和《工具参考指南》中的共享配置AWS SDKs 和凭据文件。
使用 SDK 查看所有已选择退出的电话号码 AWS
要查看所有已退出的电话号码,请使用 Amazon SNS API 提交 ListPhoneNumbersOptedOut
请求。
以下代码示例演示如何使用 ListPhoneNumbersOptedOut
。
- AWS CLI
-
列出 SMS 消息退出
以下
list-phone-numbers-opted-out
示例将列出退出 SMS 消息接收的电话号码。aws sns list-phone-numbers-opted-out
输出:
{ "phoneNumbers": [ "+15555550100" ] }
-
有关 API 的详细信息,请参阅AWS CLI 命令参考ListPhoneNumbersOptedOut
中的。
-
使用 SDK 检查电话号码是否已选择退出 AWS
要检查电话号码是否退出,请使用 Amazon SNS API 提交 CheckIfPhoneNumberIsOptedOut
请求。
以下代码示例演示如何使用 CheckIfPhoneNumberIsOptedOut
。
- SDK for .NET
-
注意
还有更多相关信息 GitHub。查找完整示例,学习如何在 AWS 代码示例存储库
中进行设置和运行。 using System; using System.Threading.Tasks; using Amazon.SimpleNotificationService; using Amazon.SimpleNotificationService.Model; /// <summary> /// This example shows how to use the Amazon Simple Notification Service /// (Amazon SNS) to check whether a phone number has been opted out. /// </summary> public class IsPhoneNumOptedOut { public static async Task Main() { string phoneNumber = "+15551112222"; IAmazonSimpleNotificationService client = new AmazonSimpleNotificationServiceClient(); await CheckIfOptedOutAsync(client, phoneNumber); } /// <summary> /// Checks to see if the supplied phone number has been opted out. /// </summary> /// <param name="client">The initialized Amazon SNS Client object used /// to check if the phone number has been opted out.</param> /// <param name="phoneNumber">A string representing the phone number /// to check.</param> public static async Task CheckIfOptedOutAsync(IAmazonSimpleNotificationService client, string phoneNumber) { var request = new CheckIfPhoneNumberIsOptedOutRequest { PhoneNumber = phoneNumber, }; try { var response = await client.CheckIfPhoneNumberIsOptedOutAsync(request); if (response.HttpStatusCode == System.Net.HttpStatusCode.OK) { string optOutStatus = response.IsOptedOut ? "opted out" : "not opted out."; Console.WriteLine($"The phone number: {phoneNumber} is {optOutStatus}"); } } catch (AuthorizationErrorException ex) { Console.WriteLine($"{ex.Message}"); } } }
-
有关 API 的详细信息,请参阅 AWS SDK for .NET API 参考CheckIfPhoneNumberIsOptedOut中的。
-
加入已选择退出 Amazon SNS API 的电话号码
要选择加入电话号码,请使用 Amazon SNS API 提交 OptInPhoneNumber
请求。
对于每个电话号码,您只能每隔 30 天重新加入一次。
使用 S AWS DK 删除短信订阅
要从 Amazon SNS 主题删除 SMS 订阅,请使用 Amazon SNS API 提交 ListSubscriptions
请求来获取订阅 ARN,然后将该 ARN 传递给 Unsubscribe
请求。
以下代码示例演示如何使用 Unsubscribe
。
- SDK for .NET
-
注意
还有更多相关信息 GitHub。查找完整示例,学习如何在 AWS 代码示例存储库
中进行设置和运行。 通过订阅 ARN 取消订阅某个主题。
/// <summary> /// Unsubscribe from a topic by a subscription ARN. /// </summary> /// <param name="subscriptionArn">The ARN of the subscription.</param> /// <returns>True if successful.</returns> public async Task<bool> UnsubscribeByArn(string subscriptionArn) { var unsubscribeResponse = await _amazonSNSClient.UnsubscribeAsync( new UnsubscribeRequest() { SubscriptionArn = subscriptionArn }); return unsubscribeResponse.HttpStatusCode == HttpStatusCode.OK; }
-
有关 API 详细信息,请参阅《AWS SDK for .NET API Reference》中的 Unsubscribe。
-
使用 AWS SDK 删除主题
要删除主题及其所有订阅,请使用 Amazon SNS API 提交 ListTopics
请求来获取主题 ARN,然后将该 ARN 传递给 DeleteTopic
请求。
以下代码示例演示如何使用 DeleteTopic
。
- SDK for .NET
-
注意
还有更多相关信息 GitHub。查找完整示例,学习如何在 AWS 代码示例存储库
中进行设置和运行。 按主题 ARN 删除主题。
/// <summary> /// Delete a topic by its topic ARN. /// </summary> /// <param name="topicArn">The ARN of the topic.</param> /// <returns>True if successful.</returns> public async Task<bool> DeleteTopicByArn(string topicArn) { var deleteResponse = await _amazonSNSClient.DeleteTopicAsync( new DeleteTopicRequest() { TopicArn = topicArn }); return deleteResponse.HttpStatusCode == HttpStatusCode.OK; }
-
有关 API 的详细信息,请参阅 AWS SDK for .NET API 参考DeleteTopic中的。
-