View a markdown version of this page

Notify を使用したメッセージの送信 - AWS エンドユーザーメッセージング SMS

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Notify を使用したメッセージの送信

Notify には、メッセージを送信するための 2 つの APIs。

  • SendNotifyTextMessage – 事前承認されたテンプレートを使用して SMS メッセージを送信します。

  • SendNotifyVoiceMessage – text-to-speech を使用してテンプレートコンテンツを読み取る音声通話を送信します。

SMS メッセージの送信

Console
  1. https://console.aws.amazon.com/sms-voice/ で AWS エンドユーザーメッセージング SMS コンソールを開きます。

  2. 通知設定に移動し、テストタブを選択します。

  3. チャネルで、テキストを選択します。

  4. テンプレートテーブルからテンプレートを選択します。

  5. E.164 形式で送信先の電話番号を入力します。

  6. テンプレート変数を入力します。

  7. [送信] を選択します。

AWS CLI
aws pinpoint-sms-voice-v2 send-notify-text-message \ --notify-configuration-id nc-1234567890abcdef0 \ --destination-phone-number +12065550100 \ --template-id notify-code-verification-english-001 \ --template-variables '{"code":"123456"}'
Python (boto3)
import boto3 client = boto3.client('pinpoint-sms-voice-v2') response = client.send_notify_text_message( NotifyConfigurationId='nc-1234567890abcdef0', DestinationPhoneNumber='+12065550100', TemplateId='notify-code-verification-english-001', TemplateVariables={ 'code': '123456' } ) print(f"Message sent. MessageId: {response['MessageId']}") print(f"Resolved body: {response.get('ResolvedMessageBody')}")

音声メッセージの送信

音声メッセージでは、Notify 設定でVOICEチャネルを有効にする必要があります。

ヒント

音声メッセージの場合、text-to-speechエンジンが 1 つの数字ではなく各数字を個別に読み取るように、数字をピリオドまたはスペース ( など"1. 2. 3. 4. 5. 6.") で区切ります。

Console
  1. https://console.aws.amazon.com/sms-voice/ で AWS エンドユーザーメッセージング SMS コンソールを開きます。

  2. 通知設定に移動し、テストタブを選択します。

  3. チャネルで、Voice を選択します。

  4. テンプレートテーブルから音声テンプレートを選択します。

  5. 送信先の電話番号を入力し、テンプレート変数を入力します。

  6. [送信] を選択します。

AWS CLI
aws pinpoint-sms-voice-v2 send-notify-voice-message \ --notify-configuration-id nc-1234567890abcdef0 \ --destination-phone-number +12065550100 \ --template-id notify-code-verification-english-001 \ --template-variables '{"code":"123456"}' \ --voice-id JOANNA

DryRun モードの使用

DryRun を に設定trueして、メッセージを実際に配信せずに送信リクエストを検証します。DryRun モードは、テンプレート変数の検証、国の制限、および使用制限をチェックしますが、メッセージを送信したり、使用制限から差し引いたりすることはありません。

aws pinpoint-sms-voice-v2 send-notify-text-message \ --notify-configuration-id nc-1234567890abcdef0 \ --destination-phone-number +12065550100 \ --template-id notify-code-verification-english-001 \ --template-variables '{"code":"123456"}' \ --dry-run

リクエストパラメータの送信

SendNotifyTextMessage と の両方が、次のパラメータSendNotifyVoiceMessageを受け入れます。

NotifyConfigurationId (必須)

Notify 設定の ID または ARN。

DestinationPhoneNumber (必須)

E.164 形式の受信者の電話番号。

TemplateVariables (必須)

変数名の値へのマップ。整数変数またはブール変数であっても、すべての値は文字列です。

TemplateId

使用するテンプレート。省略すると、設定のデフォルトテンプレートが使用されます。

ConfigurationSetName

イベントルーティングの設定セット。

Context

イベントレコードに含まれるキーと値のペア。

DryRun

送信せずにリクエストを検証します。

TimeToLive

メッセージが有効である時間、秒単位。デフォルトは 72 時間です。

MessageFeedbackEnabled

PutMessageFeedback API を介したメッセージフィードバックの追跡を有効にします。

VoiceId (音声のみ)

使用する Amazon Polly 音声 (例: JOANNAMATTHEW)。

メッセージルーティングの仕組み

AWS は、送信先の国に基づいて、各メッセージに最適な送信元 ID を自動的に選択します。電話プールを通知設定に関連付けると、プール内の顧客所有の ID が最初に試行されます。適切な顧客所有の ID がない場合は、 AWS管理された ID がフォールバックとして使用されます。

メッセージフィードバック

メッセージの送信MessageFeedbackEnabled時に を有効にすると、エンドユーザーがコードを正常に受信して使用したかどうかを報告できます。

client.put_message_feedback( MessageId='msg-1234567890abcdef', MessageFeedbackStatus='RECEIVED' # or 'FAILED' )

配信イベント

通知は、設定されたイベント送信先 (CloudWatch、Amazon Data Firehose、または Amazon SNS) に配信イベントを送信します。イベント送信先の設定については、「」を参照してくださいAWS End User Messaging SMS の設定セット

配信イベントタイプ
[Event] (イベント) 説明
PENDING メッセージは配信のためにキューに入れられます。
DELIVERED メッセージが受信者のデバイスに配信されました。
FAILED メッセージ配信に失敗しました。詳細については、失敗の理由を確認してください。
BLOCKED メッセージは Protect 設定ルールによってブロックされました。

エラー処理

ValidationException

設定でテンプレート変数がないか無効、電話番号形式が無効、または送信先の国が有効になっていません。

ResourceNotFoundException

通知設定またはテンプレートが見つかりませんでした。

ServiceQuotaExceededException

日次メッセージ制限 (基本階層) または月額使用制限に達しました。

ConflictException

通知設定が ACTIVEステータスではありません。

重要な注意事項

  • 双方向メッセージング – AWSマネージド型発信元 ID を使用する場合、双方向メッセージングはサポートされていません。双方向メッセージングが必要な場合は、独自の電話プールを関連付けます。「Notify での専用番号の使用」を参照してください。

  • オプトアウト動作 – AWSマネージド ID を持つ OTP ユースケースの場合、STOP キーワードレスポンスは情報提供のみを目的としています。各 OTP リクエストは暗黙的なオプトインであるため、永続的なオプトアウトリストは維持されません。独自の電話プールを関連付ける場合、プールのオプトアウトリストが優先されます。

トラブルシューティング

配信されないメッセージ

メッセージが配信されていない場合は、以下を確認します。

  1. 送信先の電話番号が E.164 形式であることを確認します ( +と国コードで始まります)。

  2. 送信先の国がEnabledCountriesリストに含まれていることを確認します。

  3. 設定ステータスが であることを確認しますACTIVE

  4. 支出制限を超えていないことを確認します。

BLOCKED ステータス

メッセージは Protect 設定によってブロックされました。一般的な理由には、有効な国リストにない送信先国や、潜在的な AIT (人工的に拡張されたトラフィック) としてフラグ付けされているメッセージなどがあります。

検証エラー

必要なすべての が指定されTemplateVariablesていることを確認します。変数値が宣言された型と一致することを確認します (整数は有効な数値など)。テンプレート ID が存在し、アクティブであることを確認します。