HTTP URL を指定して、モバイル発 (MO) メッセージを受信します。
プロトコル仕様
パラメーター | 説明 |
プロトコル | HTTP + JSON |
エンコーディング | UTF-8 |
前提条件
Alibaba Cloud アカウントを登録し、AccessKey ペアを作成済みであること。 詳細については、「AccessKey ペアの作成」をご参照ください。
メッセージ受信の概要と構成を確認し、そのモード、タイプ、構成プロセスを理解していること。 その後、それに応じてメッセージ受信を構成します。
MO メッセージの設定手順については、「メッセージ受信の設定」をご参照ください。
リクエストフォーマット
1 つのリクエストに複数の MO メッセージを含めることができます。
Type が TEXT の場合のリクエスト例
[
{
"MessageId": "1000000000000001",
"From": "861388888****",
"To": "86137888****",
"DisplayName": "Mr Liu",
"Type": "TEXT",
"Message": "こんにちは、私です",
"Timestamp": 1662104191973,
"Name": "jack"
},
{
"MessageId": "1000000000000002",
"From": "861388888****",
"To": "86139123****",
"DisplayName": "Mr Wang",
"Type": "TEXT",
"Message": "こんにちは、私です",
"Timestamp": 1662104191973,
"Name": "Jones"
}
]Type が AUDIO の場合のリクエスト例
[
{
"MessageId": "1000000000000003",
"CustSpaceId": "cams-83m8j9xxxxadc",
"From": "+861388888****",
"DisplayName": "Mr Liu",
"NoticeType": "inbound",
"To": "+861378886****",
"Type": "AUDIO",
"Message":
"{
\"filename\":\"File.ogg\",
\"animated\":false,
\"id\":\"3214520xxxx75431\",
\"mimeType\":\"audio/ogg\",
\"url\":\"https://whatsapp-prod-oss-bucket.oss-ap-southeast-1.aliyuncs.com/1161931534xxxx19904.ogg\"
}",
"Timestamp ": 1662104191973,
"Name": "jack",
"WabaId": "95271863xxxx233",
},
{
"MessageId": "1000000000000004",
"CustSpaceId": "cams-83m8j9xxxxadc",
"From": "+861388888****",
"DisplayName": "Mr Wang",
"NoticeType": "inbound",
"To": "+861378886****",
"Type": "AUDIO",
"Message":
"{
\"filename\":\"File.ogg\",
\"animated\":false,
\"id\":\"3214520xxxx75431\",
\"mimeType\":\"audio/ogg\",
\"url\":\"https://whatsapp-prod-oss-bucket.oss-ap-southeast-1.aliyuncs.com/1161931534xxxx19904.ogg\"
}",
"Timestamp ": 1662104191973,
"Name": "John",
"WabaId": "95271863xxxx233",
}
]Type が DOCUMENT の場合のリクエスト例
[
{
"MessageId": "1000000000000005",
"From": "+861388888****",
"DisplayName": "Mr Liu",
"NoticeType": "inbound",
"To": "+861378889****",
"Type": "DOCUMENT",
"Message":
"{
\"filename\":\"eventlog_20251211_155722_GMT.jsonl\",
\"animated\":false,
\"id\":\"275171383xxxx878\",
\"mimeType\":\"application/octet-stream\",
\"url\":\"https://bucket-chatapp-file-internal.oss-ap-southeast-1.aliyuncs.com/1161931xxxxx8375296.jsonl\"
}",
"Timestamp ": 1662104191973,
"Name": "jack",
"WabaId": "212506738xxxx650",
"CustSpaceId": "cams-85sglhxxxxkw"
},
{
"MessageId": "1000000000000006",
"From": "+861388888****",
"DisplayName": "Mr Liu",
"NoticeType": "inbound",
"To": "+861378882****",
"Type": "DOCUMENT",
"Message":
"{
\"filename\":\"eventlog_20251211_155722_GMT.jsonl\",
\"animated\":false,
\"id\":\"275171383xxxx878\",
\"mimeType\":\"application/octet-stream\",
\"url\":\"https://bucket-chatapp-file-internal.oss-ap-southeast-1.aliyuncs.com/1161931xxxxx8375296.jsonl\"
}",
"Timestamp ": 1662104191973,
"Name": "Jone",
"WabaId": "212506738xxxx650",
"CustSpaceId": "cams-85sglhxxxxkw"
}
]Type が REPLY の場合のリクエストの例
[
{
"MessageId": "1000000000000007",
"From": "861388888****",
"DisplayName": "Mr Liu",
"To": "861378886****",
"Type": "REPLY",
"Message": "{ \"text\": \"こちらをクリック\",\"payload\": \"1000000\" }" ,
"Timestamp ": 1662104191973
},
{
"MessageId": "1000000000000008",
"From": "861388888****",
"DisplayName": "Mr Wang",
"To": "861378883****",
"Type": "REPLY",
"Message": "{ \"text\": \"こちらをクリック\",\"payload\": \"1000000\" }" ,
"Timestamp ": 1662104191973
}
]Type が LOCATION の場合のリクエスト例
[
{
"MessageId": "1000000000000009",
"From": "861388888****",
"DisplayName":"Mr Liu",
"To": "861378868****",
"Type": "LOCATION",
"Message":
"{
\"address \": \"changsha yuelu street \",
\"latitude \": \"39.999137107913\",
\"longitude \": \"116.48074005043\",
\"name \": \"最初の位置メッセージ\"
}",
"Timestamp ": 1662104191973,
"Name": "jack"
},
{
"MessageId": "1000000000000010",
"From": "861388888****",
"DisplayName":"Mr Wang",
"To": "861378168****",
"Type": "LOCATION",
"Message":
"{
\"address \": \"changsha yuelu street \",
\"latitude \": \"39.999137107913\",
\"longitude \": \"116.48074005043\",
\"name \": \"最初の位置メッセージ\"
}",
"Timestamp ": 1662104191973,
"Name": "Jone"
}
]フィールドの説明
パラメーター | タイプ | 必須 | 説明 |
MessageId | String | はい | メッセージの一意の識別子。 |
CustSpaceId | String | はい | チャネル ID。 |
WabaId | String | はい | WhatsApp Business Account (WABA) の ID。 |
From | String | はい | 送信者の電話番号。 |
To | String | はい | 受信者の電話番号。 |
FromUserId | String | いいえ | BSUID |
FromParentUserId | String | いいえ | 親 BSUID (存在する場合)。 |
FromUserName | String | いいえ | ユーザーアカウント (存在する場合)。 |
Timestamp | Long | はい | メッセージが送信されたときの UNIX タイムスタンプ (ミリ秒単位)。 |
DisplayName | String | はい | 送信者の表示名。 |
Type | String | はい | メッセージのタイプ。 有効な値:
|
Message | Object | はい | メッセージの本文。
|
Name | String | はい | ユーザーの名前。 |
LOCATION オブジェクト
パラメーター | タイプ | 必須 | 説明 |
address | String | はい | 住所情報。 |
latitude | String | はい | 緯度。 |
longitude | String | はい | 経度。 |
name | String | はい | 場所の説明。 |
VIDEO オブジェクト
パラメーター | タイプ | 必須 | 説明 |
name | String | はい | ビデオファイルの説明。 |
id | String | はい | ビデオファイルの ID。 |
mimeType | String | はい | 固定値: 説明
|
url | String | はい | ビデオファイルの URL。 説明 URL は 7 日間有効です。 |
IMAGE オブジェクト
パラメーター | タイプ | 必須 | 説明 |
caption | String | いいえ | イメージの説明。 |
id | String | はい | イメージの ID。 |
mimeType | String | はい | イメージの MIME タイプ。 |
url | String | はい | イメージの URL。 説明 URL は 7 日間有効です。 |
AUDIO オブジェクト
パラメーター | タイプ | 必須 | 説明 |
name | String | はい | オーディオファイルの説明。 |
id | String | はい | オーディオファイルの ID。 |
mimeType | String | はい | 固定値は 説明
|
url | String | はい | オーディオファイルの URL。 説明 URL は 7 日間有効です。 |
DOCUMENT オブジェクト
パラメーター | タイプ | 必須 | 説明 |
name | String | はい | ドキュメントの説明。 |
id | String | はい | ドキュメントの ID。 |
filename | String | はい | ドキュメントのファイル名。 |
mimeType | String | はい | 固定値: |
url | String | はい | ドキュメントの URL。 説明 URL は 7 日間有効です。 |
REPLY オブジェクト
パラメーター | タイプ | 必須 | 説明 |
text | String | はい | ユーザーがクリックしたボタンのテキストラベル。 |
payload | String | はい | ユーザーがボタンをクリックしたときに返されるペイロード。 この値は、送信されたメッセージで定義したペイロードと一致します。 |
SYSTEM オブジェクト
パラメーター | タイプ | 必須 | 説明 |
body | String | はい | ユーザーの ID または電話番号の変更を説明します。 |
wa_id | String | はい | 電話番号が更新された後のユーザーの新しい WhatsApp ID。 |
type | String | はい | システム更新のタイプ。 有効な値:
|
レスポンス
コールバックの受信を確認応答するには、ご利用のエンドポイントから 3 秒以内に HTTP ステータスコード 200 を返す必要があります。レスポンスボディは、指定されたフォーマットの JSON オブジェクトでなければなりません。これらの要件が満たされない場合、プラットフォームは配信失敗と判断し、リクエストをリトライします。
レスポンスの例
{
"code": 0,
"msg": "Success"
}フィールドの説明
フィールド | タイプ | 必須 | 説明 |
code | Number | はい | レスポンスコード。 |
msg | String | いいえ | 説明メッセージ。 |
リトライポリシー
最初のプッシュ試行が失敗した場合、サービスは 1 分後と 5 分後にリクエストをリトライします。エンドポイントから HTTP ステータスコード 200 以外が返された場合、またはリクエストがタイムアウトした場合、試行は失敗となります。3 回の試行が連続して失敗すると、サービスはリトライを停止します。