ارسال رویداد به وب سرویس مشتری

سرویس ما امکان ارسال پیام‌های واتس‌اپ را برای کاربران فراهم می‌کند. اما برای دریافت پیام‌های واتس‌اپ نیاز به یک وب‌هوک داریم که اطلاعات پیام‌های دریافتی را به URL تعیین‌شده ارسال کند. کاربران می‌توانند با وارد کردن آدرس وب‌هوک خود در پنل کاربری، پیام‌های دریافتی واتس‌اپ را در سرور خود دریافت کنند.

  • این مستند نحوه‌ی تنظیم وب‌هوک و فرمت پیام‌های دریافتی از واتس‌اپ را توضیح می‌دهد.

متد وب هوک های ارسالی POST میباشد.

توجه: دیتاهای نمایش داده شده در این صفحه کاملا ساختگی هستند و صرفا جهت معرفی ساختار وب هوک ها تهیه شده اند.

ساختار وب هوک شامل 3 بخش است:

Description
Datatype
Attribute
شماره ارسال کننده با کد کشور، مثال: 989120001122
String
sender
شماره دریافت کننده با کد کشور، مثال: 989121110022
String
receiver
شامل محتویات اصلی پیام است. بسته به نوع پیام (مانند متن، تصویر و…) ساختار داخلی متفاوت دارد.
JSON
payload

نمونه وب هوک (با payload خالی):

اطلاعات فرستنده و گیرنده

  • sender: شماره فرستنده پیام با کد کشور، در اینجا ایران: “989120001122”
  • receiver: شماره گیرنده پیام، در اینجا ایران: “989121110022
  • Payload: شامل محتویات اصلی پیام است. بسته به نوع پیام (مانند متن، تصویر و…) ساختار داخلی متفاوت دارد.
				
					{
  "sender": "989120116884",
  "receiver": "989126619411",
  "payload": {....}
}

				
			

ساختار payload:

Description
Datatype
Attribute
انواع مختلف پیام (مانند متن، تصویر، واکنش)
String
Type
این ویژگی حاوی اطلاعات مرتبط با محیط یا زمینه پیام است، مانند دستگاه‌هایی که پیام بین آن‌ها ارسال می‌شود. و در انواع مختلف پیام ساختار ثابتی دارد.
JSON
messageContextInfo

نمونه ساختار ثابت messageContextInfo:

این بخش شامل اطلاعاتی درباره‌ی زمینه پیام میباشد، مثل داده‌های مربوط به دستگاه گیرنده یا سایر اطلاعات.

  • deviceListMetadata:

شامل اطلاعاتی درباره‌ی دستگاهی است که پیام به آن ارسال شده است و اطلاعات مربوط به فهرست دستگاه‌ها را دارد.

    • senderKeyHash: یک مقدار هش‌شده که به کلید دستگاه گیرنده اشاره می‌کند. این کلید برای امنیت پیام‌ها و اعتبارسنجی دستگاه استفاده می‌شود.
    • senderTimestamp: زمان مرتبط با دستگاه گیرنده که به صورت timestamp ذخیره شده است.
    • recipientKeyHash: یک مقدار هش‌شده که به کلید دستگاه گیرنده اشاره می‌کند. این کلید برای امنیت پیام‌ها و اعتبارسنجی دستگاه استفاده می‌شود.
    • recipientTimestamp: زمان مرتبط با دستگاه گیرنده که به صورت timestamp ذخیره شده است.

 

  • deviceListMetadataVersion:
    • نسخه‌ای از deviceListMetadata که در اینجا مقدار آن برابر با 2 است. این مقدار ممکن است به منظور سازگاری با نسخه‌های مختلف پروتکل مورد استفاده قرار گیرد.
				
					{
  "payload": {
    "conversation": "Hi To You",
    "messageContextInfo": {
      "deviceListMetadata": {
        "senderKeyHash": "Tganvset6wuIkw==",
        "senderTimestamp": "1719631314",
        "recipientKeyHash": "aZ8c13lG1M+F5Q==",
        "recipientTimestamp": "1750189856"
      },
      "deviceListMetadataVersion": 2
    }
  },
  "sender": "989120001122",
  "receiver": "989121110022"
}

				
			

انواع type:

Description
Datatype
Attribute
پیام از نوع متنی
String
conversation
پیام از نوع متنی (پیشرفته)
JSON
extendedTextMessage
پیام از نوع ریکشن (بازخورد)
JSON
reactionMessage
پیام از نوع عکس و تصویر
JSON
imageMessage
پیام از نوع صوتی
JSON
audioMessage
پیام از نوع ویدیو
JSON
videoMessage
پیام از نوع سند
JSON
documentMessage
پیام از نوع خاص برای مدیریت رویدادهای سیستمی مثل حذف پیام
JSON
protocolMessage

مثال برای conversation (پیام متنی):

  • Conversation: 

متن پیام ارسالی

  • messageContextInfo:

همانطور که گفته شد ساختار ثابتی در تمام وب هوک ها دارد.

				
					{
  "payload": {
    "conversation": "Hi To You",
    "messageContextInfo": {...}
  },
  "sender": "989120001122",
  "receiver": "989121110022"
}

				
			

مثال برای extendedTextMessage (متنی پیشرفته):

این بخش شامل اطلاعات پیام متنی است که با ویژگی‌های خاصی همراه است.

text:

  • متن اصلی پیام که در اینجا مقدار آن “Hi To You” است و محتوای پیام را مشخص می‌کند.

contextInfo:

  • اطلاعات اضافی یا زمینه‌ای پیام که شامل تنظیمات پیام‌های محو شونده و حالت ناپدید شدن است.
  • ephemeralSettingTimestamp:
    • یک timestamp (به صورت تعداد ثانیه‌ها از شروع سال 1970) که زمان تنظیمات پیام‌های محو شونده را نشان می‌دهد. این زمان نشان می‌دهد که چه موقع پیام در حالت محو شونده قرار گرفته است.
  • disappearingMode:
    • حالت ناپدید شدن پیام را مشخص می‌کند.
    • initiator:
      • منبع یا آغازگر حالت ناپدید شدن پیام را نشان می‌دهد. در اینجا مقدار آن CHANGED_IN_CHAT است که نشان می‌دهد این حالت در چت تغییر یافته است.

inviteLinkGroupTypeV2:

  • نوع لینک گروه دعوت که در اینجا مقدار آن “DEFAULT” است. این مقدار نشان می‌دهد که لینک گروه از نوع پیش‌فرض است. این ویژگی معمولاً برای مدیریت لینک‌های دعوت به گروه‌ها در WhatsApp استفاده می‌شود.
				
					{
  "payload": {
    "extendedTextMessage": {
      "text": "Hi To You",
      "contextInfo": {
        "ephemeralSettingTimestamp": "1718132600",
        "disappearingMode": {
          "initiator": "CHANGED_IN_CHAT"
        }
      },
      "inviteLinkGroupTypeV2": "DEFAULT"
    },
    "messageContextInfo": {...}
  },
  "sender": "989120001122",
  "receiver": "989121110022"
}

				
			

مثال برای reactionMessage (نوع واکنش یا بازخورد):

در این ساختار پیام، پیام شامل یک واکنش یا Reaction Message است که در واقع یک پاسخ کوتاه (مثل ایموجی) به پیام قبلی می‌باشد.

key:

اطلاعات کلیدی مربوط به پیام اصلی که واکنش به آن داده شده است.

  • remoteJid: شماره تلفن یا شناسه پیام اصلی که واکنش به آن داده شده است (در فرمت استاندارد WhatsApp).
  • fromMe: نشان‌دهنده اینکه آیا پیام از طرف فرستنده اصلی (در اینجا واکنش‌دهنده) است یا نه.
  • id: شناسه پیام اصلی که واکنش به آن داده شده است.

Text:

ایموجی که به عنوان واکنش ارسال شده است، که در اینجا مقدار آن 😂 (کد Unicode آن \ud83d\ude02) است.

senderTimestampMs:

زمان ارسال واکنش به میلی‌ثانیه.

				
					{
  "payload": {
    "reactionMessage": {
      "key": {
        "remoteJid": "989120001122@s.whatsapp.net",
        "fromMe": true,
        "id": "8EB021ABC243FDB04B77A0514D4E60T1"
      },
      "text": "😂",
      "senderTimestampMs": "1720173708718"
    },
    "messageContextInfo": {...}
  },
  "sender": "989120001122",
  "receiver": "989121110022"
}

				
			

مثال برای imageMessage (پیام عکس و تصویر):

این ساختار نشان‌دهنده یک پیام تصویری است که شامل اطلاعات کاملی درباره تصویر، مانند URL، نوع فایل، اندازه و تنظیمات امنیتی فایل است. همچنین، اطلاعاتی درباره تنظیمات ناپدید شدن پیام و قابلیت مشاهده‌ی یک‌ باره تصویر نیز ثبت شده است.

imageMessage:

  • این بخش حاوی جزئیات مربوط به پیام تصویری است.

url:

  • لینک URL تصویر که از سرور WhatsApp برای دانلود تصویر فراهم می‌شود.

mimetype:

  • نوع فایل تصویر، که در اینجا image/jpeg است و نشان‌دهنده فرمت تصویر (JPEG) است.

fileSha256:

  • هش SHA-256 فایل تصویر. این مقدار به‌عنوان یک شناسه‌ی یکتا برای تصویر استفاده می‌شود و امنیت فایل را تضمین می‌کند.

fileLength:

  • اندازه فایل تصویر به بایت. در این مثال، مقدار آن 43809 بایت است.

height و width:

  • ارتفاع (476) و عرض (638) تصویر به پیکسل که ابعاد تصویر را مشخص می‌کند.

mediaKey:

  • کلید رسانه‌ای که برای رمزگشایی تصویر استفاده می‌شود. این کلید به دلایل امنیتی به فایل پیوست می‌شود.

fileEncSha256:

  • هش SHA-256 فایل رمزگذاری شده. این مقدار برای اعتبارسنجی فایل رمزگذاری‌شده استفاده می‌شود.

directPath:

  • مسیر مستقیم فایل روی سرور WhatsApp، که برای دسترسی به تصویر استفاده می‌شود.

mediaKeyTimestamp:

  • زمان ایجاد mediaKey که به‌صورت میلی‌ثانیه.

jpegThumbnail:

  • تصویر بندانگشتی یا Thumbnail در فرمت base64 که نسخه فشرده و کوچک‌شده‌ای از تصویر اصلی است. این تصویر کوچک در نمایش سریع پیام‌ها مفید است.

contextInfo:

  • شامل اطلاعات زمینه‌ای برای پیام.
    • ephemeralSettingTimestamp:
      • زمان تنظیم قابلیت ناپدید شدن خودکار پیام که به میلی‌ثانیه ثبت شده است.
    • disappearingMode:
      • تنظیمات ناپدید شدن خودکار پیام، که در اینجا مقدار CHANGED_IN_CHAT را دارد و نشان می‌دهد که این تنظیم در چت فعال شده است.

viewOnce:

  • اگر مقدار آن true باشد، نشان می‌دهد که تصویر تنها یک‌بار قابل مشاهده است. در این مثال، مقدار false است و یعنی تصویر می‌تواند بیش از یک‌بار مشاهده شود.
				
					{
  "payload": {
    "imageMessage": {
      "url": "https:\/\/mmg.whatsapp.net\/o1\/v&_nc_sid=000000&mms3=true",
      "mimetype": "image\/jpeg",
      "fileSha256": "Tpjsk0rX\gS0I\/9KIwKrp0J0=",
      "fileLength": "43809",
      "height": 476,
      "width": 638,
      "mediaKey": "YIgynsDbw6kS96xXsIL5wZR4=",
      "fileEncSha256": "TMtfrreE+2PkzSoanMfRAOWTjPf1Ig=",
      "directPath": "\/o1\/v\/t62.7118-24\/f1\/m269\/up-oil-image-63377&_nc_sid=000000",
      "mediaKeyTimestamp": "1720237239",
      "jpegThumbnail": "\/9j\/4AD\/2wBgMCAgIDAwYEAgGBgUG....",
      "contextInfo": {
        "ephemeralSettingTimestamp": "1718132600",
        "disappearingMode": {
          "initiator": "CHANGED_IN_CHAT"
        }
      },
      "viewOnce": false
    },
    "messageContextInfo": {...}
  },
  "sender": "989120001122",
  "receiver": "989121110022"
}

				
			

مثال برای audioMessage (پیام صوتی):

این ساختار نشان‌دهنده یک پیام صوتی (Audio Message) در پیام‌های وب‌هوکی WhatsApp است که شامل اطلاعاتی مانند لینک دانلود، نوع فایل، طول و مدت زمان فایل، کلید رمزگشایی، و حالت ارسال (forwarded) است.

 

audioMessage:

  • این بخش حاوی جزئیات مربوط به پیام صوتی است.
  • url:
    • لینک URL برای دانلود فایل صوتی که از سرور WhatsApp ارائه شده است.



  • Mimetype:
  • نوع فایل صوتی که در اینجا audio/ogg; codecs=opus است و نشان‌دهنده فرمت صوتی OGG با کدک Opus است.
  • fileSha256:
    • هش SHA-256 فایل صوتی که برای اعتبارسنجی و شناسایی یکتا فایل استفاده می‌شود.
  • fileLength:
    • اندازه فایل صوتی به بایت (در اینجا 36459 بایت است).
  • seconds:
    • مدت زمان فایل صوتی به ثانیه (در اینجا 15 ثانیه).
  • ptt:
    • مقدار false نشان می‌دهد که این فایل یک پیام صوتی (Push-to-Talk) نیست و به‌عنوان پیام عادی صوتی ارسال شده است.
  • mediaKey:
    • کلید رسانه‌ای که برای رمزگشایی فایل صوتی استفاده می‌شود.
  • fileEncSha256:
    • هش SHA-256 فایل رمزگذاری‌شده که برای اطمینان از یکپارچگی فایل رمزگذاری‌شده استفاده می‌شود.
  • directPath:
    • مسیر مستقیم فایل روی سرور WhatsApp برای دسترسی سریع به فایل.
  • mediaKeyTimestamp:
    • زمان ایجاد mediaKey به‌صورت میلی‌ثانیه از آغاز سال 1970، که معمولاً برای ارجاع به زمان ارسال فایل استفاده می‌شود.
  • contextInfo:
    • شامل اطلاعات زمینه‌ای مربوط به پیام است.
      • forwardingScore:
        • عدد 1 نشان می‌دهد که پیام یک‌بار ارسال مجدد شده است.
      • isForwarded:
        • مقدار true نشان می‌دهد که این پیام از جایی دیگر به اشتراک گذاشته شده است.
  • waveform:
    • نمایشگر تصویری فایل صوتی در قالب base64 که نمایی از تغییرات امواج صوتی را فراهم می‌کند.
				
					{
  "payload": {
    "audioMessage": {
      "url": "https:\/\/mmg.whatsapp.net\/v\VPAV57&oe=66B05AE9&_nc_sid=5e03e0&mms3=true",
      "mimetype": "audio\/ogg; codecs=opus",
      "fileSha256": "VCrwiP3YKAsk5uocT8l7c+vnZYiEvCG4ZncjlSuY7G4=",
      "fileLength": "36459",
      "seconds": 15,
      "ptt": false,
      "mediaKey": "BamF7Hwhvr2IjdjmUpQ8onhCx4=",
      "fileEncSha256": "6z1+zs2RXq8hA6xeu0kklFDNMNQfWdU=",
      "directPath": "\/v\/t62.71442PAV57&oe=66B05AE9&_nc_sid=5e03e0&_nc_hot=1720249773",
      "mediaKeyTimestamp": "1720249701",
      "contextInfo": {
        "forwardingScore": 1,
        "isForwarded": true
      },
      "waveform": "RDRBQRo+Ij89NEM1Jzs5Qk0OkBCIkUuJQ=="
    },
    "messageContextInfo": {....}
  },
  "sender": "989120001122",
  "receiver": "989121110022"
}

				
			

مثال برای videoMessage (پیام ویدیویی):

این ساختار پیام، اطلاعات مربوط به پیام ویدیویی شامل لینک دانلود، نوع فایل، اندازه و مدت زمان ویدیو، کلید رمزگشایی، و حالت ناپدیدشونده را نشان می‌دهد. همچنین، از تصویر کوچک (thumbnail) و اطلاعات جانبی پخش برای نمایش و پخش ویدیو استفاده می‌شود.

 

  1. videoMessage:
    • این بخش شامل جزئیات مربوط به پیام ویدیویی است.
    • url:
      • لینک URL برای دانلود فایل ویدیویی که از سرور WhatsApp ارائه شده است.
    • mimetype:
      • نوع فایل ویدیویی، در اینجا video/mp4 است و نشان‌دهنده فرمت MP4 ویدیو می‌باشد.
    • fileSha256:
      • هش SHA-256 فایل ویدیویی که برای شناسایی یکتا و اعتبارسنجی فایل استفاده می‌شود.
    • fileLength:
      • اندازه فایل ویدیویی به بایت، که در اینجا 4656013 بایت است.
    • seconds:
      • مدت زمان ویدیو به ثانیه (در اینجا 96 ثانیه).
    • mediaKey:
      • کلید رسانه‌ای که برای رمزگشایی فایل ویدیویی استفاده می‌شود.
    • gifPlayback:
      • مقدار false نشان می‌دهد که ویدیو به‌عنوان GIF اجرا نمی‌شود و یک ویدیو عادی است.
    • height و width:
      • ابعاد ویدیو به ترتیب ارتفاع (1018 پیکسل) و عرض (1918 پیکسل).
    • fileEncSha256:
      • هش SHA-256 فایل رمزگذاری‌شده که برای اطمینان از یکپارچگی فایل رمزگذاری‌شده استفاده می‌شود.
    • directPath:
      • مسیر مستقیم فایل روی سرور WhatsApp که برای دسترسی سریع به فایل استفاده می‌شود.
    • mediaKeyTimestamp:
      • زمان ایجاد mediaKey به‌صورت میلی‌ثانیه از آغاز سال 1970 که معمولاً برای ارجاع به زمان ارسال فایل استفاده می‌شود.
    • jpegThumbnail:
      • تصویر کوچک (thumbnail) ویدیو به صورت base64 که نشان‌دهنده پیش‌نمایش ویدیو است.
    • contextInfo:
      • شامل اطلاعات زمینه‌ای مربوط به پیام است.
        • ephemeralSettingTimestamp:
          • زمان تنظیم حالت ناپدیدشونده پیام.
        • disappearingMode:
          • مشخص می‌کند که تغییرات در حالت ناپدیدشونده پیام در چت رخ داده است.
    • streamingSidecar:
      • اطلاعات جانبی مربوط به استریم ویدیو که به صورت base64 ارائه شده و برای تسهیل پخش ویدیو در حال پخش استفاده می‌شود.
    • viewOnce:
      • مقدار false نشان می‌دهد که ویدیو تنها یک‌بار مشاهده نمی‌شود و می‌تواند چند بار پخش شود.
				
					{
  "payload": {
    "videoMessage": {
      "url": "https:\/\/mmg.whatsapp.net\/v\/t62.7101SlZ4a&oe=66B080EE&_nc_sid=5e03e0&mms3=true",
      "mimetype": "video\/mp4",
      "fileSha256": "FLR7t9fFIkZrd5Fr4dqkqxqocwVQIyEcqiN6O7s=",
      "fileLength": "4656013",
      "seconds": 96,
      "mediaKey": "AFf+pZPcwLzaD7sbbLkxz9lQaVdsntCCgG06Ak=",
      "gifPlayback": false,
      "height": 1018,
      "width": 1918,
      "fileEncSha256": "cFJI+huvMDTOSi7LKfE\/ewb8MVp2gQ7gg=",
      "directPath": "\/v\/t62.7161-24\/3a&oe=66B080EE&_nc_sid=5e03e0",
      "mediaKeyTimestamp": "1720262804",
      "jpegThumbnail": "\/9j\/4AAQSkZJTEUAAQEAAAAQwAABtb....",
      "contextInfo": {
        "ephemeralSettingTimestamp": "1708263184",
        "disappearingMode": {
          "initiator": "CHANGED_IN_CHAT"
        }
      },
      "streamingSidecar": "U2EL3rLHbarq\/++Zpes7b7sWpCeQdp....",
      "viewOnce": false
    },
    "messageContextInfo": {....}
  },
  "sender": "989120001122",
  "receiver": "989121110022"
}

				
			

مثال برای documentMessage (پیام سند):

این ساختار پیام سند، شامل اطلاعات کاملی از فایل PDF، مانند لینک دانلود، نوع فایل، عنوان، اندازه، تعداد صفحات، و جزئیات رمزگشایی و تصویر بندانگشتی می‌باشد.

 

documentMessage:

  • شامل جزئیات سند ارسالی (فایل PDF) می‌باشد.
  • url:
    • لینک برای دانلود فایل سند از سرور WhatsApp.
  • mimetype:
    • نوع فایل سند، در اینجا application/pdf، که نشان می‌دهد این سند یک فایل PDF است.
  • title:
    • عنوان فایل، در اینجا “ASNA K”.
  • fileSha256:
    • هش SHA-256 فایل که برای اطمینان از یکپارچگی و اعتبار فایل استفاده می‌شود.
  • fileLength:
    • اندازه فایل به بایت، که در اینجا 7872857 بایت (حدود 7.8 مگابایت) است.
  • pageCount:
    • تعداد صفحات فایل PDF، که برابر با 113 صفحه است.
  • mediaKey:
    • کلید رسانه‌ای که برای رمزگشایی فایل سند استفاده می‌شود.
  • fileName:
    • نام فایل همراه با پسوند آن، که در اینجا “ASNA K.pdf” است.
  • fileEncSha256:
    • هش SHA-256 فایل رمزگذاری‌شده که برای اطمینان از یکپارچگی فایل رمزگذاری‌شده استفاده می‌شود.
  • directPath:
    • مسیر مستقیم فایل روی سرور WhatsApp برای دسترسی سریع‌تر.
  • mediaKeyTimestamp:
    • زمان ایجاد mediaKey به‌صورت میلی‌ثانیه از ابتدای سال 1970.
  • thumbnailDirectPath و thumbnailSha256 و thumbnailEncSha256:
    • این بخش‌ها برای مدیریت تصویر بندانگشتی (thumbnail) فایل PDF استفاده می‌شود.
      • thumbnailDirectPath: مسیر مستقیم تصویر بندانگشتی.
      • thumbnailSha256: هش SHA-256 تصویر بندانگشتی.
      • thumbnailEncSha256: هش SHA-256 تصویر رمزگذاری‌شده بندانگشتی.
  • jpegThumbnail:
    • پیش‌نمایش تصویر بندانگشتی فایل PDF به صورت base64، برای نمایش یک تصویر کوچک از فایل.
  • contextInfo:
    • شامل اطلاعات زمینه‌ای مربوط به پیام است.
      • forwardingScore: نشان‌دهنده تعداد دفعاتی که پیام ارسال مجدد شده است.
      • isForwarded: نشان می‌دهد که پیام از فرستنده دیگری فوروارد (ارسال مجدد) شده است.
  • thumbnailHeight و thumbnailWidth:
    • ابعاد تصویر بندانگشتی، به ترتیب 51 و 72 پیکسل.
				
					{
  "payload": {
    "documentMessage": {
      "url": "https:\/\/mmg.whatsapp.net\/v\/t62.7106D7D&_nc_sid=5e03e0&mms3=true",
      "mimetype": "application\/pdf",
      "title": "ASNA K",
      "fileSha256": "CggKx3vfgYhRKMoY7akSSgHAlXwhTxLcREuiHOEsf00=",
      "fileLength": "7872857",
      "pageCount": 113,
      "mediaKey": "A9Ny5kV\/TbNh5nMTclqOCMYG9uUyp\/iTnNAcVlc\/KD8=",
      "fileName": "ASNA K.pdf",
      "fileEncSha256": "O93zqESwsBjyL86tDebNrxmdenXOFZ7ahQAPNPtXH9s=",
      "directPath": "\/v\/t62.7119-24\/13156835_827471092681780_49707794700778200....",
      "mediaKeyTimestamp": "1720259645",
      "thumbnailDirectPath": "\/v\/t62.36145-24\/18899962_351461741132911_7....",
      "thumbnailSha256": "2DTGGM43NK6yE1g9YzYGvhXG0OG\/ZKZnMQC4RFzARqI=",
      "thumbnailEncSha256": "9+X+Tubhk3rFu4GB20p79VHWdOlsbsO68qMiUTCLGjs=",
      "jpegThumbnail": "\/9j\/4AAQSkZJRgABAQAAAQABAAD\/2wCEABERERESERMVFRM....",
      "contextInfo": {
        "forwardingScore": 1,
        "isForwarded": true
      },
      "thumbnailHeight": 51,
      "thumbnailWidth": 72
    },
    "messageContextInfo": {....}
  },
  "sender": "989120001122",
  "receiver": "989121110022"
}

				
			

مثال برای protocolMessage (پیام از نوع خاص برای مدیریت رویدادهای سیستمی مثل حذف پیام):

در این ساختار JSON، یک پیام از نوع Protocol Message با نوع REVOKE نمایش داده شده است که برای لغو یا حذف یک پیام خاص در WhatsApp استفاده می‌شود.

 

protocolMessage:

  • این بخش نشان می‌دهد که پیام از نوع پروتکل است و یک عملیات خاص روی یک پیام دیگر انجام می‌دهد.
  • key:
    • شامل اطلاعاتی است که پیام هدف لغو را شناسایی می‌کند.
    • remoteJid: شناسه یکتای مربوط به گیرنده یا گروه، که در اینجا “989120001122@s.whatsapp.net” است.
    • fromMe: اگر true باشد، نشان می‌دهد که پیام از طرف فرستنده اصلی (خود کاربر) ارسال شده است.
    • id: شناسه یکتای پیام که قرار است لغو شود، “42BB799986C8D653735C048BE9E4CD36”.
  • type:
    • نوع پیام پروتکل، که در اینجا “REVOKE” است و نشان می‌دهد پیام مشخص‌شده باید لغو یا حذف شود.
				
					{
  "payload": {
    "protocolMessage": {
      "key": {
        "remoteJid": "989120001122@s.whatsapp.net",
        "fromMe": true,
        "id": "42BB788986C1D653732C048BC9E4CD36"
      },
      "type": "REVOKE"
    },
    "messageContextInfo": {....}
  },
  "sender": "989120001122",
  "receiver": "989121110022"
}