このドキュメントでは、アプリ設定で設定したWebhook URLに配信できるインバウンドのお知らせのいくつかのタイプについて説明します。
受信したメッセージのWebhookのお知らせはmessages
オブジェクトの内部に含まれています。このセクションの表では、インバウンドのお知らせのフィールドについて説明します。
名前 | 説明 |
---|---|
型:連絡先のプロフィール情報の配列 | 連絡先に関するすべての情報を提供します。「
|
型:任意の型のメッセージオブジェクトの配列 | 受信メッセージに関するすべての情報を提供します。「
|
contacts
オブジェクトcontacts
オブジェクトは、連絡先に関するすべての情報を提供します。
このオブジェクトは、SMS、連絡先メッセージ、および位置情報メッセージにのみ適用されます。現在はメディアメッセージではサポートされていません。また、システムメッセージには適用されません。
名前 | 説明 |
---|---|
| 送信者のプロフィール情報が含まれています。 |
型:文字列 | 連絡先のWhatsApp ID。 |
profile
オブジェクトこのオブジェクトには、送信者のプロフィール情報が含まれています。
名前 | 説明 |
---|---|
型:文字列 | 任意。 送信者のプロフィール上の名前が含まれています。 |
messages
オブジェクトmessages
オブジェクトは、受信メッセージに関するすべての情報を提供します。
名前 | 説明 |
---|---|
型:文字列 | 任意。 このオブジェクトが含まれるのは、利用者がいずれかのメッセージに返信した場合のみです。送信者IDやメッセージIDなど、元のメッセージの内容に関する情報が含まれます。詳細は、「 |
型:文字列 | 送信者のWhatsApp ID。 |
型:文字列 | メッセージID。 |
型:IDオブジェクト。 | 任意。 このオブジェクトは、アプリ設定で |
型:文字列 | メッセージの受信タイムスタンプ。 |
型:文字列 | メッセージ型。 |
型:受信したメッセージに関する詳細情報を提供するメッセージ型オブジェクト。 | メッセージの内容。詳しくは、「 |
型:リファーラルオブジェクト | 任意。 このオブジェクトは、WhatsApp誘導を行いメッセージをビジネスに送信する広告をユーザーがクリックすると表示されます。「リファーラルプロパティ」をご覧ください。 |
型:システムオブジェクト | システム変更のお知らせ。 |
context
オブジェクトcontext
オブジェクトは、いずれかのメッセージに対する利用者の返信メッセージに含まれています。返信のコンテキストを提供することが目的です。
名前 | 説明 |
---|---|
型:文字列 | 元のメッセージの送信者のWhatsApp ID。 |
型:文字列 | 元のメッセージのメッセージID。 |
identity
オブジェクトidentity
オブジェクトは、ユーザーのIDに関するすべての情報を提供します。
アプリ設定でshow_security_notifications
パラメーターをtrue
に設定したときにだけ、すべての受信メッセージに適用されます。
名前 | 説明 |
---|---|
型:文字列 | 最後の |
型:Int | WhatsApp Business APIクライアントによりユーザー変更の可能性が検出された時点のタイムスタンプ。 |
型:文字列 | 最後の |
text
オブジェクトtext
オブジェクトは、お知らせでSMSを示すときに、SMSの本文を提供します。
名前 | 説明 |
---|---|
型:文字列 | メッセージテキスト。 |
location
オブジェクトlocation
オブジェクトは、ユーザーの静的な位置情報のお知らせを受信したときに、位置情報の詳細を提供します。
名前 | 説明 |
---|---|
型:数値 | 送信された位置情報の緯度。 |
型:数値 | 送信された位置情報の経度。 |
型:文字列 | この場所の住所。 |
型:文字列 | この場所の名前。 |
型:文字列 | ユーザーが位置情報をダウンロードしたウェブサイトのURL。 |
リアルタイム位置情報タイプのインバウンドメッセージは現在サポートされていません。
contacts
オブジェクトユーザーの連絡先情報のお知らせを受信した場合、contacts
オブジェクトから連絡先情報の詳細が提供されます。
このフィールドは、上記にリストしたcontacts
オブジェクトとは異なります。
名前 | 説明 |
---|---|
型:配列 | 連絡先の詳細な住所。このフィールドには、 |
型: | 連絡先の誕生日。 |
型:Base64エンコードの画像 | Base64エンコードの連絡先画像(JPEG形式)。 |
型:配列 | 連絡先メールアドレス。このフィールドには、 |
型:配列 | メッセージング連絡先情報。このフィールドには、 |
型:配列 | 連絡先のフルネーム。このフィールドには、 |
型:配列 | 組織の連絡先情報。このフィールドには、 |
型:配列 | 連絡先の電話番号。このフィールドには、 |
型:配列 | 連絡先URL。このフィールドには、 |
media
(image
| document
| audio
| video
| voice
| sticker
)オブジェクトメディア付きのメッセージを受信すると、WhatsApp Business APIクライアントはそのメディアをダウンロードします。メディアがダウンロードされた後、Webhookにお知らせが送信されます。このメッセージにはメディアオブジェクトを識別する情報が含まれており、その情報を使ってオブジェクトを見つけ、ダウンロードすることができます。
名前 | 説明 |
---|---|
型:文字列 | 任意。指定した場合にのみ存在します。 メディア向けに提供されたキャプション。 |
型:文字列 | このパラメーターは廃止されました。 メディアボリューム上の絶対的なファイル名と場所。 |
型:文字列 | 送信者のデバイスでのファイル名。 |
型:文字列 | メディアID。クライアントにローカルに保存されたメディアを削除するときに使用できます。 |
型:メタデータオブジェクト |
|
型:文字列 | メディアのMIMEタイプ。 |
型:文字列 | チェックサム。 |
system
オブジェクトシステム変更のお知らせは、system
オブジェクトに含めて送信されます。
名前 | 説明 |
---|---|
型:文字列 | システムイベントメッセージ。 |
referral
プロパティWhatsApp Business APIのバージョン2.33以降、インバウンドメッセージのお知らせには、referral
という追加プロパティが含まれる場合があります。このセクションは、WhatsApp誘導を行いメッセージをビジネスに送信する広告をユーザーがクリックすると、お知らせに含まれるようになります。プロセスは次のようになります。
referral
プロパティを含むインバウンドメッセージのお知らせを受け取ります。そのプロパティは、メッセージをトリガーした広告についての追加のコンテキストを提供します。この情報をすべて知ることで、ビジネスはユーザーメッセージに適切に返信できます。referral
プロパティには、次の型のメッセージを含められます。
referral
を含むインバウンド画像メッセージのお知らせの例を次に示します。次の例では、動画を含む広告をユーザーがクリックしています。
{ "messages":[{ "from":"12345678", "id":"ABGGFlA5FpafAgo6tHcNmNjXmuSf", "image":{ "id":"b1c68f38-8734-4ad3-b4a1-ef0c10d683", "mime_type":"image/jpeg", "sha256":"29ed500fa64eb55fc19dc4124acb300e5dcca0f822a301ae99944db" "caption": "Check out my product!", }, "timestamp":"1521497954", "type":"image", "referral" : { "headline": "Our new product", "body" : "This is a great product", "source_type": "<SOURCE_TYPE>", "source_id": "<SOURCE_ID>", "source_url": "<SOURCE_URL>", //for the moment, this will always be a Facebook owned domain "video": { "id": "e144be57-12b1-4035-a520-703fcc87ef45", } } }] }
referral
オブジェクトWhatsApp誘導を行いメッセージをビジネスに送信する広告をユーザーがクリックすると、お知らせに含まれるようになります。このオブジェクトは広告の情報を含みます。
名前 | 説明 |
---|---|
型:文字列 | メッセージを生成した広告で使用されている見出し。 |
型:文字列 | メッセージを生成した広告の本文。 |
型:文字列 | 広告のソースのタイプ。現在、サポートされている値は |
型:文字列 | 広告または投稿のFacebook ID。 |
型:文字列 | 広告にリンクしたURL。このURLを開くと、ユーザーが表示した広告に移動します。 |
| 任意。 ユーザーが表示およびクリックした画像または動画。 |
referral media
(video
| image
)オブジェクト広告で使用されたメディア。sha256
とmime_type
は表示されていません。mime_type
はメディアがダウンロードされる際に表示される場合があります。
名前 | 説明 |
---|---|
型:文字列 | メディアID。このフィールドは、クライアントにローカルに保存されたメディアを削除するときに使用できます。 |
ビジネスがメッセージを受信したときにお知らせを受信します。以下の「messages
オブジェクト」セクションでは、受信メッセージに関して受け取る可能性があるすべての情報について説明します。
このセクションでは、SMS、位置情報、連絡先、転送されたメッセージ、不明のメッセージの例を示します。
以下は、顧客から受信したSMSの例です。詳しくは、後述のtext
オブジェクトのセクションをご覧ください。
{ "contacts": [ { "profile": { "name": "Kerry Fisher" }, "wa_id": "16315551234" } ], "messages":[{ "from": "16315551234", "id": "ABGGFlA5FpafAgo6tHcNmNjXmuSf", "timestamp": "1518694235", "text": { "body": "Hello this is an answer" }, "type": "text" }] }
以下は、顧客から受信した、顧客の静的な位置情報を示すメッセージの例です。詳しくは、後述のlocation
オブジェクトのセクションをご覧ください。
{ "contacts": [ { "profile": { "name": "Kerry Fisher" }, "wa_id": "16315551234" } ], "messages":[{ "from":"16315551234", "id":"ABGGFlA5FpafAgo6tHcNmNjXmuSf", "location":{ "address":"Main Street Beach, Santa Cruz, CA", "latitude":38.9806263495, "longitude":-131.9428612257, "name":"Main Street Beach", "url":"https://foursquare.com/v/4d7031d35b5df7744"}, "timestamp":"1521497875", "type":"location" }] }
以下は、顧客から受信した、顧客の連絡先情報を示すメッセージの例です。詳しくは、後述のcontacts
オブジェクトのセクションをご覧ください。
{ "contacts": [ { "profile": { "name": "Kerry Fisher" }, "wa_id": "16315551234" } ], "messages": [ { "contacts": [ { "addresses": [ { "city": "Menlo Park", "country": "United States", "country_code": "us", "state": "CA", "street": "1 Hacker Way", "type": "WORK", "zip": "94025" } ], "birthday": "2012-08-18", "contact_image": "/9j/4AAQSkZJRgABAQEAZABkAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCABgAGADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD1NLloxyc0j3bNUHDGgoCMVNkBbhutvVqc9yGHNZ3kOW4Wn/ZnQZzSsgLLXAA61Xn1O2t4zLcyJHGvV3OAKMADmvOviLq9m11a2bO/l2xLzoqnliF2j9f1NTLRXHGHM7Hb2vivSL+8e0s7yKaVeyHg/Q9D+FXWuHPOzivFodT0WZkeF44bheVdE2EH+Rr2+zuVuNPt7gqh86JX+TkcjPFTCdy6lNQ2dyr5+G5WpRe4HTFWWSOQfwioZbCIn5XNaXRmQPegjmqrKLh+...", "emails": [ { "email": "kfish@fb.com", "type": "WORK" } ], "ims": [ { "service": "AIM", "user_id": "kfish" } ], "name": { "first_name": "Kerry", "formatted_name": "Kerry Fisher", "last_name": "Fisher" }, "org": { "company": "Facebook" }, "phones": [ { "phone": "+1 (940) 555-1234", "type": "CELL" }, { "phone": "+1 (650) 555-1234", "type": "WORK", "wa_id": "16505551234" } ], "urls": [ { "url": "https://www.facebook.com", "type": "WORK" } ] } ], "from": "16505551234", "id": "ABGGFlA4dSRvAgo6C4Z53hMh1ugR", "timestamp": "1537248012", "type": "contacts" } ] }
v2.29.1
以降、受信したメッセージが転送されたものであるか、頻繁に転送されたものであるかが分かるようになりました。
{ "contacts": [{ "profile": { "name": "Kerry Fisher" }, "wa_id": "16315551234" }], "messages": [{ "context": { "forwarded": true }, "from": "16315558011", "id": "ABGGFmkiWVVPAgo-sOGh7pv13wVJ", "text": { "body": "Party at Dotty's tonight!" }, "timestamp": "1593068329", "type": "text" }] }
{ "contacts": [{ "profile": { "name": "Kerry Fisher" }, "wa_id": "16315551234" }], "messages": [{ "context": { "frequently_forwarded": true }, "from": "16315558011", "id": "ABGGFmkiWVVPAgo-sBTHfS3swNIl", "timestamp": "1593068225", "type": "video", "video": { "id": "e144be57-12b1-4035-a520-703fcc87ef45", "mime_type": "video/mp4", "sha256": "02c4e68a4f0d6af5ec6ef02120e20d15f520a4dd473b535abec1aab175c4e8b9" } }] }
unknown
コールバックのお知らせを受信できるようになりました。以下は、顧客から受信したサポートされていないメッセージタイプの例です。
{ "contacts": [{ "profile": { "name": "Kerry Fisher" }, "wa_id": "16315551234" }], "messages": [{ "errors": [{ "code": 501, "details": "Message type is not currently supported", "title": "Unknown message type" }], "from": "16315551234", "id": "ABGGFRBzFymPAgo6N9KKs7HsN6eB", "timestamp": "1531933468", "type": "unknown" }] }
アプリ設定でshow_security_notifications
パラメーターがtrue
に設定されている場合、すべてのインバウンドメッセージのお知らせに、identity
オブジェクトの内部に含まれるユーザーのIDに関する次の情報が含まれます。
{ "contacts": [{ "profile": { "name": "Kerry Fisher" }, "wa_id": "16315551234" }], "messages": [{ "from": "16315553601", "id": "ABGGFjFVU2AfAgo6V-Hc5eCgK5Gh", "identity": { "acknowledged": true, "created_timestamp": 1602532300000, "hash": "Sjvjlx8G6Z0=" }, "text": { "body": "Hi from new number 3601" }, "timestamp": "1602532300", "type": "text" }] }
{ "contacts": [ { "profile": { "name": "Kerry Fisher" }, "wa_id": "16505551234" } ], "messages": [ { "button": { "payload": "No-Button-Payload", "text": "No" }, "context": { "from": "16315558007", "id": "gBGGFmkiWVVPAgkgQkwi7IORac0" }, "from": "16505551234", "id": "ABGGFmkiWVVPAgo-sKD87hgxPHdF", "timestamp": "1591210827", "type": "button" } ] # If there are any errors, an errors field (array) will be present "errors": [ { ... } ] }
メディア付きのメッセージを受信すると、WhatsApp Business APIクライアントはそのメディアをダウンロードします。メディアがダウンロードされた後、Webhookにお知らせが送信されます。このお知らせにはメディアオブジェクトを識別する情報が含まれており、その情報を使ってオブジェクトを見つけ、取得することができます。メディアを取得するには、メディアのid
とともにメディアエンドポイントを使用します。
このセクションでは、メディア付きで受信したメッセージの例を示します。
以下は、画像を含むインバウンドメッセージの例です。他のメディアタイプについて詳しくは、以下のmedia
オブジェクトセクションをご覧ください。
{ "messages": [{ "from": "16315551234", "id": "ABGGFlA5FpafAgo6tHcNmNjXmuSf", "image": { "file": "/usr/local/wamedia/shared/b1cf38-8734-4ad3-b4a1-ef0c10d0d683", "id": "b1c68f38-8734-4ad3-b4a1-ef0c10d683", "mime_type": "image/jpeg", "sha256": "29ed500fa64eb55fc19dc4124acb300e5dcc54a0f822a301ae99944db", "caption": "Check out my new phone!" }, "timestamp": "1521497954", "type": "image" }] }
メディアメッセージのcaption
フィールドは任意です。このフィールドが含まれるのは、ユーザーがキャプションを設定した場合のみです。
以下は、ドキュメントを含むインバウンドメッセージの例です。他のメディアタイプについて詳しくは、以下のmedia
オブジェクトセクションをご覧ください。
{ "messages": [{ "from": "16315551234", "id": "ABGGFlA5FpafAgo6tHcNmNjXmuSf", "timestamp": "1522189546", "type": "document", "document": { "caption": "80skaraokesonglistartist", "file": "/usr/local/wamedia/shared/fc233119-733f-49c-bcbd-b2f68f798e33", "id": "fc233119-733f-49c-bcbd-b2f68f798e33", "mime_type": "application/pdf", "sha256": "3b11fa6ef2bde1dd14726e09d3edaf782120919d06f6484f32d5d5caa4b8e" } }]
以下は、ボイスメッセージを含むインバウンドメッセージの例です。他のメディアタイプについて詳しくは、以下のmedia
オブジェクトセクションをご覧ください。
{ "messages":[{ "from": "16315551234", "id": "ABGGFlA5FpafAgo6tHcNmNjXmuSf", "timestamp": "1521827831", "type": "voice", "voice": { "file": "/usr/local/wamedia/shared/463e/b7ec/ff4e4d9bb1101879cbd411b2", "id": "463eb7ec-ff4e-4d9b-b110-1879cbd411b2", "mime_type": "audio/ogg; codecs=opus", "sha256": "fa9e1807d936b7cebe63654ea3a7912b1fa9479220258d823590521ef53b0710"} }] }
以下は、スタンプを含むインバウンドメッセージの例です。他のメディアタイプについて詳しくは、以下のmedia
オブジェクトセクションをご覧ください。
{ "messages":[{ "from": "16315551234", "id": "ABGGFlA5FpafAgo6tHcNmNjXmuSf", "timestamp": "1521827831", "type": "sticker", "sticker": { "id": "b1c68f38-8734-4ad3-b4a1-ef0c10d683", "metadata": { "sticker-pack-id": "463eb7ec-ff4e-4d9b-b110-1879cbd411b2", "sticker-pack-name" : "Happy New Year", "sticker-pack-publisher" : "Kerry Fisher", "emojis": ["🐥", "😃"], "ios-app-store-link" : "https://apps.apple.com/app/id3133333", "android-app-store-link" : "https://play.google.com/store/apps/details?id=com.example", "is-first-party-sticker" : 0 | 1 # integer }, "mime_type": "image/webp", "sha256": "fa9e1807d936b7cebe63654ea3a7912b1fa9479220258d823590521ef53b0710" } }] }
ユーザーはWhatsAppで特定のメッセージに応答できます。ビジネスがメッセージ返信のコンテキストを理解できるように、context
オブジェクトが用意されています。このcontext
オブジェクトは、顧客が返信したメッセージのid
と、元のメッセージの送信者のWhatsApp IDを提供します。
詳しくは、「メッセージへの返信」をご覧ください。
以下は、送信したメッセージへの返信であるインバウンドメッセージの例です。詳しくは、後述のcontext
オブジェクトのセクションをご覧ください。
{ "contacts": [ { "profile": { "name": "Kerry Fisher" }, "wa_id": "16315551234" } ], "messages":[{ "context":{ "from":"16315558011", "id":"ABGGFlA5FpafAgo6tHcNmNjXmuSf" }, "from":"16315551234", "id":"gBGGFlA5FpafAgkOuJbRq54qwbM", "text":{"body":"Yes, count me in!"}, "timestamp":"1521499915", "type":"text" }] }
メディアメッセージのtext
フィールドは任意です。text
フィールドが存在する場合、その値は送信したメディアのキャプションまたは応答の本文(応答がSMSの場合)です。
システムメッセージは、何らかのイベントが発生したときにシステムによって生成されます。詳しくは、後述のsystem
オブジェクトのセクションをご覧ください。
アプリ設定でnotify_user_change_number
パラメーターをtrue
に設定した場合、ユーザーが自分の電話番号を変更したときにインバウンドシステムメッセージを受信します。
{ "messages": [ { "from": "16315558889", "id": "ABGGFjFVWIifAzNzeXMtMTYzMTU1NTg4ODlAcy53aGF0c2FwcC5uZXQtMTU3NDA4MDEwMjIxMy1jaGFuZ2U", "system": { "body": "User A changed from +1 (631) 555-8889 to +1 (631) 555-8890", "new_wa_id": "16315558890", "type": "user_changed_number" }, "timestamp": "1574080102", "type": "system" } ] }
アプリ設定でshow_security_notifications
パラメーターをtrue
に設定した場合、WhatsAppでユーザーが(スレッド中に)変更を行ったときにインバウンドシステムメッセージを受信します。
このお知らせがidentity
エンドポイントを使用して承認されるまで、このユーザーに対する送信メッセージはすべてブロックされます。受信メッセージは引き続き想定どおり受信されます。
{ "messages": [ { "from": "16315553601", "id": "ABGGFjFVU2AfAzVzeXMtMTYzMTU1NTM2MDFAcy53aGF0c2FwcC5uZXQtMTYwMjUzNTM1NjMzMi1pZGVudGl0eQ", "system": { "body": "Test security code change", "identity": "Rc/eg9Rl0JA=", "type": "user_identity_changed", "user": "16315553601" }, "timestamp": "1602535356", "type": "system" } ] }
システムメッセージのタイプ | 説明 |
---|---|
| ユーザーの電話番号を変更 |
| ユーザーがWhatsAppで変更を行った可能性がある |
特定のWhatsApp IDに直接言及するメッセージを送信して誰かがそのメッセージに返信した場合、言及されたIDがcontext
オブジェクトとmentions
配列に表示されます。複数の電話番号に言及される可能性があるため、言及された電話番号が1つだけの場合であっても、mentions
フィールドは電話番号の配列になっています。
以下は、言及を含むメッセージに対する顧客の返信の例です。context
オブジェクトには、元のメッセージで言及された数値が含まれています。text
オブジェクト内の返信は、同じ数値に再度言及しています。
{ "messages": [{ "context": { "from": "16315555544", "id": "gBGGFlA5FpafAgkOuJbRq54qwbM", "mentions": [ "16315551000", "16315551099" ] }, "from": "16315551234 ", "id": "ABGGFlA5FpafAgo6tHcNmNjXmuSf", "timestamp": "1504902988", "text": { "body": "@16315551000 and @16315551099 are mentioned" }, "type": "text" }] }
messages
ノードを使用して受信メッセージのステータスをread
に変更できます。
pass_through
がtrue
に設定されていると、メッセージは、配信された後または受信者により既読になった後に、ローカルデータベースから削除されます。しかし、false
に設定されていると、受信メッセージはローカルデータベースに7日間保存され、db_garbagecollector_enable
がtrue
に設定されている場合は、その後に削除されます。
受信メッセージは受信後7日間以内に既読にするようおすすめします。
このAPI呼び出しで使用されているmessage_id
は、インバウンドのお知らせで指定されているid
です。
PUT /v1/messages/message-id { "status": "read" }
名前 | 説明 |
---|---|
| 必須。
|
null # or {}