Amazon Simple Notification Service
開発者ガイド (API バージョン 2010-03-31)

電話番号および SMS サブスクリプションの管理

Amazon SNS には、アカウントから SMS メッセージを受信するユーザーを管理するためのオプションが複数用意されています。制限された頻度で、アカウントからの SMS メッセージの受信をオプトアウトした電話番号をオプトインできます。SMS サブスクリプションへのメッセージの送信を停止するために、それらに発行されるサブスクリプションやトピックを削除できます。

SMS メッセージの受信のオプトアウト

現地の法律および規制により義務付けられている場合 (米国およびカナダなど)、SMS の受信者は、デバイスを利用して以下のいずれかのメッセージに返信することによって、オプトアウトできます。

  • ARRET (フランス語)

  • CANCEL

  • END

  • オプトアウト

  • オプトアウト

  • QUIT

  • REMOVE

  • STOP

  • TD

  • UNSUBSCRIBE

オプトアウトするには、受信者は Amazon SNS がメッセージを配信するのに使用したのと同じロングコードまたはショートコードに応答する必要があります。オプトアウト後、ユーザーが電話番号をオプトインしない限り、受信者は AWS アカウントから配信される SMS メッセージを受信しなくなります。

電話番号が Amazon SNS トピックにサブスクライブされると、オプトアウトはサブスクリプションを削除しませんが、電話番号をオプトインしない限り、SMS メッセージは、サブスクリプションへ送信できません。

電話番号とサブスクリプション (コンソール) の管理

Amazon SNS コンソールを使用して、アカウントから SMS メッセージを受信する電話番号を制御できます。

オプトアウトされた電話番号をオプトインする

ユーザーのアカウントからの SMS メッセージの受信をオプトアウトした電話番号を表示し、これらの電話番号をオプトインしてメッセージの送信を再開することができます。

30 日に 1 回のみ、電話番号をオプトインできます。

  1. AWS マネジメントコンソールにサインインした後、Amazon SNS コンソール (https://console.aws.amazon.com/sns/v2/home) を開きます。

  2. コンソールメニューで、SMS メッセージングをサポートしているリージョンにリージョンセレクタを設定します。

  3. ナビゲーションペインで、[Text messaging (SMS)] を選択します。

  4. [Text messaging (SMS)] ページで、[オプトアウトされた電話番号を表示] を選択します。[Opted out phone numbers] ページは、オプトアウトされた電話番号を表示します。

  5. オプトインする電話番号のチェックボックスをオンにして、[Opt in] を選択します。電話番号はオプトアウトではなくなり、送信した SMS メッセージを受信します。

SMS サブスクリプションを削除する

トピックにパブリッシュするときに、その電話番号への SMS メッセージの送信を停止するように SMS サブスクリプションを削除します。

  1. ナビゲーションペインで [Subscriptions] を選択します。

  2. 削除するサブスクリプションのチェックボックスをオンにします。それから、[Actions] を選択して、[Delete Application] を選択します。

  3. [Delete (削除)] ウィンドウで、[Delete (削除)] を選択します。Amazon SNS はサブスクリプションを削除し、成功メッセージを表示します。

トピックの削除

サブスクライブしたエンドポイントにメッセージを発行しない場合トピックを削除します。

  1. ナビゲーションペインで、[Topics] を選択します。

  2. 削除するトピックのチェックボックスをオンにします。[Actions] を選択してから、[Delete Topics] を選択します。

  3. [Delete (削除)] ウィンドウで、[Delete (削除)] を選択します。Amazon SNS はトピックを削除し、成功メッセージを表示します。

電話番号およびサブスクリプション (AWS SDK) の管理

AWS SDK を使用して、Amazon SNS に対してプログラムによるリクエストを行い、アカウントから SMS メッセージを受信できる電話番号を管理できます。

すべてのオプトアウトした電話番号を表示する

すべてのオプトアウトした電話番号を表示するには、Amazon SNS API を使用して、ListPhoneNumbersOptedOut リクエストを送信します。

または、以下の例に示すように、AWS SDK の Amazon SNS クライアントを使用します。

AWS SDK for JavaAWS SDK for .NET
AWS SDK for Java

AWS 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); }
AWS SDK for .NET

AWS 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 のコンソール出力ウィンドウで、すべてのオプトアウトした電話番号のリストが表示されます。

電話番号がオプトアウトしているかどうかを確認する

電話番号がオプトアウトされているかどうかを確認するには、Amazon SNS API を使用して、CheckIfPhoneNumberIsOptedOut リクエストを送信します。

または、以下の例に示すように、AWS SDK の Amazon SNS クライアントを使用します。

AWS SDK for JavaAWS SDK for .NET
AWS SDK for Java

AWS SDK for Java では、AmazonSNSClient クラスの checkIfPhoneNumberIsOptedOut メソッドを使用できます。

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

この例を実行すると、IDE のコンソール出力ウィンドウに true または false の結果が表示されます。

{IsOptedOut: false}
AWS SDK for .NET

AWS SDK for .NET を使用すると、CheckIfPhoneNumberIsOptedOut クラスの AmazonSimpleNotificationServiceClient メソッドを使用できます。

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

この例を実行すると、IDE のコンソール出力ウィンドウに true または false の結果が表示されます。

false

オプトアウトされた電話番号をオプトインする

電話番号をオプトインするには、Amazon SNS API を使用して、OptInPhoneNumber リクエストを送信します。

または、以下の例に示すように、AWS SDK の Amazon SNS クライアントを使用します。

AWS SDK for JavaAWS SDK for .NET
AWS SDK for Java

AWS SDK for Java では、AmazonSNSClient クラスの optInPhoneNumber メソッドを使用できます。

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

AWS SDK for .NET では、AmazonSimpleNotificationServiceClient クラスの OptInPhoneNumber メソッドを使用できます。

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

30 日に 1 回のみ、電話番号をオプトインできます。

SMS サブスクリプションを削除する

Amazon SNS トピックからの SMS サブスクリプションを削除するには、Amazon SNS API を使用して ListSubscriptions リクエストを送信することにより、サブスクリプション ARN を取得したら、その ARN を Unsubscribe リクエストに渡します。

または、以下の例に示すように、AWS SDK の Amazon SNS クライアントを使用します。

AWS SDK for JavaAWS SDK for .NET
AWS SDK for Java

AWS SDK for Java では、AmazonSNSClient クラスの listSubscriptions メソッドを使用し、サブスクリプション ARN を取得できます。

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

文字列引数として、ARN を unsubscribe メソッドに渡すことにより、サブスクリプションを削除できます。

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

AWS SDK for .NET では、次のようなコードを使用します。

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

トピックの削除

トピックとサブスクリプションすべてを削除するには、Amazon SNS API を使用して ListTopics リクエストを送信することでトピック ARN を取得し、次に、その ARN を DeleteTopic リクエストに渡します。

または、以下の例に示すように、AWS SDK の Amazon SNS クライアントを使用します。

AWS SDK for JavaAWS SDK for .NET
AWS SDK for Java

AWS SDK for Java では、AmazonSNSClient クラスの listTopics メソッドを使用して、トピック ARN を取得できます。

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

文字列引数として、ARN を deleteTopic メソッドに渡すことにより、トピックを削除できます。

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

AWS SDK for .NET を使用し、次のようなコードを使用します。

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