HTTP URL を指定して、モバイルターミネーテッド (MT) メッセージの配信レシート (ChatAppStatus) を受信します。
プロトコル仕様
パラメーター | 説明 |
プロトコル | HTTP + JSON |
エンコーディング | UTF-8 |
前提条件
Alibaba Cloud アカウントを登録し、AccessKey ペアを作成済みであること。 詳細については、「AccessKey ペアの作成」をご参照ください。
メッセージレシートの概要と構成を確認し、そのモード、タイプ、構成プロセスを理解していること。 その後、メッセージレシートを適宜構成します。
リクエストフォーマット
サービスは、HTTP POST リクエストを介して、ご利用のコールバック URL にステータスの更新を送信します。 1 つのリクエストには、1 つ以上のステータスレポートオブジェクトを含む JSON 配列を含めることができます。
MsgFrameType が template の場合のリクエスト例
[
{
"Status":"Failed",
"ErrorDescription":"131026:Receiver is incapable of receiving this message(Message Undeliverable.)",
"MsgFrameType":"template",
"TaskId":"202307030171*******9",
"From":"86131*******8",
"Timestamp":1691043638000,
"OriginPhoneNumber":"86130*******8",
"TemplateCode":"820561547132813184",
"Type":"TEMPLATE",
"Language":"id",
"TemplateName":"wa_otp_v_0_0_3",
"To":"86138*******8",
"ErrorCode":"131026",
"MessageId":"2023078469463703*******3"
},
{
"Status":"Failed",
"ErrorDescription":"131026:Receiver is incapable of receiving this message(Message Undeliverable.)",
"MsgFrameType":"template",
"TaskId":"202307030171*******9",
"From":"86131*******8",
"Timestamp":1691043638000,
"OriginPhoneNumber":"86130*******8",
"TemplateCode":"820561547132813184",
"Type":"TEMPLATE",
"Language":"id",
"TemplateName":"wa_otp_v_0_0_3",
"To":"86137*******8",
"ErrorCode":"131026",
"MessageId":"2023078469463703*******3"
}
]MsgFrameType が message の場合のリクエスト例
[
{
"Status":"Read",
"MsgFrameType":"message",
"Type":"INTERACTIVE",
"TaskId":"2023068473353098*******8",
"From":"86131*******8",
"To":"86138*******8",
"Timestamp":1691132091000,
"OriginPhoneNumber":"86131*******8",
"MessageId":"2023038470553398*******8",
"ConversationId":"72222201111****",
"ConversationType": "service"
},
{
"Status":"Read",
"MsgFrameType":"message",
"Type":"INTERACTIVE",
"TaskId":"2023068473353098*******8",
"From":"86131*******8",
"To":"86138*******1",
"Timestamp":1691132091000,
"OriginPhoneNumber":"86131*******8",
"MessageId":"2023038470553398*******8",
"ConversationId":"72222201111****",
"ConversationType": "service"
}
]フィールドの説明
パラメーター | タイプ | 必須 | 説明 |
MessageId | String | はい | メッセージの一意の ID。 |
From | String | はい | 送信者の電話番号。 |
To | String | はい | 受信者の電話番号。 |
Timestamp | Long | はい | メッセージが送信されたときの UNIX タイムスタンプ (ミリ秒単位)。 |
Status | String | はい | メッセージの配信ステータス。 有効な値:
|
StatusDescription | String | はい | ステータスの説明。 |
ErrorCode | String | いいえ | 配信失敗のエラーコード。 |
ErrorDescription | String | いいえ | エラーコードの説明。 詳細については、「エラーコード」をご参照ください。 |
ConversationType | String | いいえ | 会話のタイプ。 有効な値:
|
ConversationId | String | いいえ | 会話の一意の ID。 |
ConversationExpirationTime (非推奨) | Long | いいえ | 会話の有効期限が切れる時間。 説明 このフィールドは非推奨であり、新しいメッセージごとの課金モデルでは効果がありません。 |
MsgFrameType | String | はい | メッセージタイプ。 有効な値:
|
Type | String | いいえ | メッセージコンテンツのメディアタイプ。 有効な値:
|
TaskId | String | いいえ | カスタムタスク ID。 説明
|
OriginPhoneNumber | String | いいえ | 送信者の元の電話番号。 |
TemplateCode | String | いいえ | メッセージテンプレートのコード。 説明 このフィールドは、 |
レスポンスフォーマット
コールバックの受信を確認するには、エンドポイントが 3 秒以内に HTTP 200 ステータスコードを返す必要があります。 レスポンス本文は、次のフォーマットの JSON オブジェクトである必要があります。 そうでない場合、システムは通知を失敗とみなし、プッシュをリトライします。
レスポンス例
{
"code" : 0,
"msg" : "Success"
}フィールドの説明
フィールド | タイプ | 必須 | 説明 |
code | Number | はい | レスポンスコード。 |
msg | String | いいえ | 説明メッセージ。 |
リトライポリシー
最初のプッシュ試行が失敗した場合、サービスは 1 分後、さらに 5 分後にリクエストをリトライします。 エンドポイントが 200 以外の HTTP ステータスコードを返すか、リクエストがタイムアウトした場合、試行は失敗します。 3 回の試行が失敗した後、サービスはリトライを停止します。