HTTP URL を指定して、モバイル発信 (MO) メッセージを受信します。
プロトコルの仕様
パラメーター | 説明 |
プロトコル | HTTP + JSON |
エンコーディング | UTF-8 |
前提条件
Alibaba Cloud アカウントを登録し、AccessKey ペアを作成済みであること。詳細については、「AccessKey ペアの作成」をご参照ください。
「メッセージ受信の概要と構成」を確認し、そのモード、タイプ、構成プロセスを理解していること。その上で、メッセージ受信を適切に構成してください。
リクエストフォーマット
1 つのリクエストに複数の MO メッセージが含まれる場合があります。
Type が TEXT の場合のリクエスト例
[
{
"MessageId": "1000000000000001",
"From": "861388888****",
"To": "86137888****",
"DisplayName": "Mr Liu",
"Type": "TEXT",
"Message": "hello,it's me",
"Timestamp": 1662104191973,
"Name": "jack"
},
{
"MessageId": "1000000000000002",
"From": "861388888****",
"To": "86139123****",
"DisplayName": "Mr Wang",
"Type": "TEXT",
"Message": "hello,it's me",
"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 \": \"this is firest location message\"
}",
"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 \": \"this is firest location message\"
}",
"Timestamp ": 1662104191973,
"Name": "Jone"
}
]フィールドの説明
フィールド | タイプ | 必須 | 説明 |
MessageId | String | はい | メッセージの一意の識別子です。 |
CustSpaceId | String | はい | チャネル ID です。 |
WabaId | String | はい | WhatsApp ビジネスアカウント 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。 説明 このパラメーターは、 |
url | String | はい | 動画ファイルの URL です。 説明 URL は 7 日間有効です。 |
AUDIO オブジェクト
フィールド | タイプ | 必須 | 説明 |
name | String | はい | 音声ファイルの説明です。 |
id | String | はい | 音声ファイルの ID です。 |
mimeType | String | はい | 固定値:audio。 説明 このパラメーターは、 |
url | String | はい | 音声ファイルの URL です。 説明 URL は 7 日間有効です。 |
IMAGE オブジェクト
フィールド | タイプ | 必須 | 説明 |
caption | String | いいえ | イメージの説明です。 |
id | String | はい | イメージの ID です。 |
mimeType | String | はい | イメージの MIME タイプです。 |
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 分後にリクエストをリトライします。エンドポイントが 200 以外の HTTP ステータスコードを返した場合、またはリクエストがタイムアウトした場合、試行は失敗とみなされます。3 回の試行が失敗した後、サービスはリトライを停止します。