HTTP URL を指定することで、Chat App Message Service からモバイル発信メッセージを受信できます。
プロトコルの説明
パラメーター | 説明 |
Protocol | HTTP + JSON |
Encoding | UTF-8 |
前提条件
Alibaba Cloud アカウントを登録し、AccessKey ペアを作成済みであること。 詳細については、「AccessKey ペアの作成」をご参照ください。
メッセージ受信の概要と構成を読み、メッセージ受信のパターン、タイプ、構成フローを理解していること。
モバイル発信メッセージの構成方法の詳細については、「ステータスレポート/モバイル発信メッセージの構成」をご参照ください。
リクエストの説明
1 回のプッシュに複数のモバイル発信メッセージが含まれる場合があります。
タイプ が TEXT に設定されている場合のリクエスト例
[
{
"MessageId": "1000000000000001", // メッセージID
"From": "861388888****", // 送信者の電話番号
"To": "86137888****", // 受信者の電話番号
"DisplayName": "Mr Liu", // 送信者の表示名
"Type": "TEXT", // メッセージタイプ。テキストメッセージ
"Message": "hello,it's me", // メッセージコンテンツ
"Timestamp": 1662104191973, // タイムスタンプ。ミリ秒単位のUnixタイムスタンプ
"Name": "jack" // エンドユーザーの名前
},
{
"MessageId": "1000000000000002", // メッセージID
"From": "861388888****", // 送信者の電話番号
"To": "86139123****", // 受信者の電話番号
"DisplayName": "Mr Wang", // 送信者の表示名
"Type": "TEXT", // メッセージタイプ。テキストメッセージ
"Message": "hello,it's me", // メッセージコンテンツ
"Timestamp": 1662104191973, // タイムスタンプ。ミリ秒単位のUnixタイムスタンプ
"Name": "Jones" // エンドユーザーの名前
}
]Type が AUDIO に設定されている場合のリクエスト例
[
{
"MessageId": "1000000000000003", // メッセージID
"From": "+861388888****", // 送信者の電話番号
"DisplayName": "Mr Liu", // 表示名
"To": "+861378886****", // 受信者の電話番号
"Type": "AUDIO", // メッセージタイプ
"Message":
"{
\"name\": \"this is first audio message\", // 音声ファイルの説明
\"id\": \"6e098464-117c-480b-beaa-3ea0635f****\", // 音声ファイルのID
\"mimeType\": \"application/pdf\", // MIMEタイプ
\"fileName\": \"first.pdf\", // ファイル名
\"url\": \"\" // 音声ファイルのURL
} ",
"Timestamp ": 1662104191973, // タイムスタンプ
"Name": "jack" // エンドユーザー名
},
{
"MessageId": "1000000000000004", // メッセージID
"From": "+861388888****", // 送信者の電話番号
"DisplayName": "Mr Wang", // 表示名
"To": "+861378886****", // 受信者の電話番号
"Type": "AUDIO", // メッセージタイプ
"Message":
"{
\"name\": \"this is first audio message\", // 音声ファイルの説明
\"id\": \"6e098464-117c-480b-beaa-3ea0635f****\", // 音声ファイルのID
\"mimeType\": \"application/pdf\", // MIMEタイプ
\"fileName\": \"first.pdf\", // ファイル名
\"url\": \"\" // 音声ファイルのURL
} ",
"Timestamp ": 1662104191973, // タイムスタンプ
"Name": "John" // エンドユーザー名
}
]Type が DOCUMENT に設定されている場合のリクエスト例
[
{
"MessageId": "1000000000000005", // メッセージID
"From": "+861388888****", // 送信者の電話番号
"DisplayName": "Mr Liu", // 送信者の表示名
"To": "+861378889****", // 受信者の電話番号
"Type": "DOCUMENT", // メッセージタイプ、ドキュメントメッセージ
"Message":
"{
\"name\": \"this is first document message\", // ドキュメントの説明
\"ID\": \"6e098464-117c-480b-beaa-3ea0635f****\", // ドキュメントID
\"mimeType\": \"audio/ogg; codecs=opus\", // MIMEタイプ
\"url\": \"\" // ドキュメントのURL
}" ,
"Timestamp ": 1662104191973, // タイムスタンプ。ミリ秒単位のUnixタイムスタンプ
"Name": "jack" // エンドユーザーの名前
},
{
"MessageId": "1000000000000006", // メッセージID
"From": "+861388888****", // 送信者の電話番号
"DisplayName": "Mr Liu", // 送信者の表示名
"To": "+861378882****", // 受信者の電話番号
"Type": "DOCUMENT", // メッセージタイプ、ドキュメントメッセージ
"Message":
"{
\"name\": \"this is first document message\", // ドキュメントの説明
\"ID\": \"6e098464-117c-480b-beaa-3ea0635f****\", // ドキュメントID
\"mimeType\": \"audio/ogg; codecs=opus\", // MIMEタイプ
\"url\": \"\" // ドキュメントのURL
}" ,
"Timestamp ": 1662104191973, // タイムスタンプ。ミリ秒単位のUnixタイムスタンプ
"Name": "Jone" // エンドユーザーの名前
}
]以下は、Type が REPLY に設定されている場合のリクエスト例です。
[
{
"MessageId": "1000000000000007", // メッセージID
"From": "861388888****", // 送信者の電話番号
"DisplayName": "Mr Liu", // 送信者の表示名
"To": "861378886****", // 受信者の電話番号
"Type": "REPLY", // メッセージタイプ。返信メッセージ
"Message": "{ \"text\": \"click me\",\"payload\": \"1000000\" }" , // 返信ボタンの名前とペイロード
"Timestamp ": 1662104191973 // タイムスタンプ。ミリ秒単位のUnixタイムスタンプ
},
{
"MessageId": "1000000000000008", // メッセージID
"From": "861388888****", // 送信者の電話番号
"DisplayName": "Mr Wang", // 送信者の表示名
"To": "861378883****", // 受信者の電話番号
"Type": "REPLY", // メッセージタイプ。返信メッセージ
"Message": "{ \"text\": \"click me\",\"payload\": \"1000000\" }" , // 返信ボタンの名前とペイロード
"Timestamp ": 1662104191973 // タイムスタンプ。ミリ秒単位のUnixタイムスタンプ
}
]Type が LOCATION に設定されている場合のリクエスト例
[
{
"MessageId": "1000000000000009", // メッセージID
"From": "861388888****", // 送信者の電話番号
"DisplayName":"Mr Liu", // 送信者の表示名
"To": "861378868****", // 受信者の電話番号
"Type": "LOCATION", // メッセージタイプ。位置情報メッセージ
"Message": "{\"address \": \"changsha yuelu street \", \"latitude \": \"39.999137107913\", \"longitude \": \"116.48074005043\", \"name \": \"this is firest location message\" } ", // 位置情報
"Timestamp ": 1662104191973, // タイムスタンプ。ミリ秒単位のUnixタイムスタンプ
"Name": "jack" // エンドユーザーの名前
},
{
"MessageId": "1000000000000010", // メッセージID
"From": "861388888****", // 送信者の電話番号
"DisplayName":"Mr Wang", // 送信者の表示名
"To": "861378168****", // 受信者の電話番号
"Type": "LOCATION", // メッセージタイプ。位置情報メッセージ
"Message": "{\"address \": \"changsha yuelu street \", \"latitude \": \"39.999137107913\", \"longitude \": \"116.48074005043\", \"name \": \"this is firest location message\" } ", // 位置情報
"Timestamp ": 1662104191973, // タイムスタンプ。ミリ秒単位のUnixタイムスタンプ
"Name": "Jone" // エンドユーザーの名前
}
]フィールドの説明
名前 | タイプ | 必須 | 説明 |
MessageId | String | はい | メッセージの ID。 |
CustSpaceId | String | はい | チャネル ID。 |
WabaId | String | はい | WhatsApp Business Account の ID。 |
From | String | はい | メッセージ送信者の電話番号。 |
To | String | はい | メッセージ受信者の電話番号。 |
Timestamp | Long | はい | ミリ秒単位の UNIX タイムスタンプ。 |
DisplayName | String | はい | 番号の表示名。 |
Type | String | はい | メディアリソースタイプ。 有効な値:
|
Message | String | はい | メッセージのコンテンツ。
|
Name | String | はい | エンドユーザーの名前。 |
LOCATION フィールド
名前 | タイプ | 必須 | 説明 |
address | String | はい | 住所情報。 |
latitude | String | はい | 緯度。 |
longitude | String | はい | 経度。 |
name | String | はい | 位置情報の説明。 |
VIDEO フィールド
名前 | タイプ | 必須 | 説明 |
name | String | はい | 動画ファイルの説明。 |
id | String | はい | 動画ファイルの ID。 |
mimeType | String | はい | 静的フィールド:ogg。 説明 codecs が opus に設定されている場合、このパラメーターは無視できます。 |
url | String | はい | 動画ファイルの URL。 説明 URL は 7 日間有効です。 |
AUDIO フィールド
名前 | タイプ | 任意 | 説明 |
name | String | はい | 音声ファイルの説明。 |
id | String | はい | 音声ファイルの ID。 |
mimeType | String | はい | 静的フィールド:audio。 説明 codecs が opus に設定されている場合、このパラメーターは無視できます。 |
url | String | はい | 音声ファイルの URL。 説明 URL は 7 日間有効です。 |
IMAGE フィールド
名前 | タイプ | 必須 | 説明 |
caption | String | いいえ | 画像の説明。 |
id | String | はい | 画像の ID。 |
mimeType | String | はい | 画像のタイプ。 |
url | String | はい | 画像の URL。 説明 URL は 7 日間有効です。 |
DOCUMENT フィールド
名前 | タイプ | 任意 | 説明 |
name | String | はい | ドキュメントファイルの説明。 |
id | String | はい | ドキュメントファイルの ID。 |
filename | String | はい | ドキュメントファイルの名前。 |
mimeType | String | はい | 静的フィールド:application/pdf。 |
url | String | はい | ドキュメントの URL。 説明 URL は 7 日間有効です。 |
REPLY フィールド
名前 | タイプ | 任意 | 説明 |
text | String | はい | 顧客がクリックするボタンの名前。 |
payload | String | はい | ボタンがクリックされると、メッセージ送信時に指定されたペイロード値が返されます。 |
SYSTEM フィールド
名前 | タイプ | 任意 | 説明 |
body | String | はい | 顧客の ID または電話番号の変更について説明します。 |
wa_id | String | はい | 電話番号が更新された後の顧客の新しい WhatsApp ID。 |
type | String | はい | システム更新のタイプ。 有効な値:
|
レスポンスの説明
受信後、レスポンスには HTTP ステータスコード 200 と、以下に示すフォーマットのレスポンス本文を含める必要があります。 そうでない場合、プッシュは失敗し、リトライがトリガーされます。
レスポンス例
{
"code" : 0,
"msg" : "success"
}フィールドの説明
名前 | タイプ | 必須 | 説明 |
code | Number | はい | レスポンスコード。 |
msg | String | いいえ | 説明。 |
再試行
最初のプッシュが失敗した場合、システムは 1 分後にリトライします。 この試行も失敗した場合、さらに 5 分後にもう一度リトライします。 合計 3 回の試行でプッシュが失敗した場合、システムはリトライを停止します。