WhatsApp

GetMyBot کانال WhatsApp را از طریق WhatsApp Cloud API (Meta Graph API) متصل می‌کند. پس از اتصال، بات پیام‌های ورودی از WhatsApp را دریافت می‌کند و واکنش‌های شما را روی آن‌ها اعمال می‌کند، و اپراتورها می‌توانند در گفت‌وگوها مکاتبه کنند. مرور کلی چندکاناله بودن در صفحهٔ کانال‌ها.

اتصال کانال WhatsApp

برای اتصال به پنج مشخصه از اپلیکیشن Meta شما (WhatsApp Cloud API) نیاز است. همهٔ آن‌ها اجباری‌اند:

  • Phone number ID — شناسهٔ شمارهٔ WhatsApp Business.
  • WABA ID — شناسهٔ WhatsApp Business Account.
  • Access token — توکن دسترسی اپلیکیشن Meta.
  • Verify token — رشته‌ای دلخواه که خودتان تعیین می‌کنید. هنگام تأیید webhook در Meta استفاده می‌شود (پایین‌تر ببینید).
  • App secret — راز اپلیکیشن Meta. برای بررسی امضای HMAC وبهوک‌های ورودی لازم است (هدر X-Hub-Signature-256).

مراحل در رابط کاربری:

  1. بات‌ها ← «افزودن کانال» ← WhatsApp را باز کنید.
  2. پنج فیلد بالا و در صورت تمایل نام کانال (اختیاری) را پر کنید.
  3. روی «بررسی» کلیک کنید — GetMyBot مشخصات را از طریق Meta اعتبارسنجی می‌کند.
  4. روی «اتصال» کلیک کنید.

پیکربندی webhook در Meta

پس از اتصال، کانال یک Callback URL به شکل {آدرس}/ch/{channelID} پیدا می‌کند (در رابط کاربری — آیکون webhook 🔗). آن را همراه Verify token خود در اپلیکیشن Meta وارد کنید: WhatsApp → Configuration → Webhook.

نحوهٔ کار:

  1. Meta به Callback URL یک درخواست verify می‌فرستد و verify_token ارسالی را با Verify token شما مقایسه می‌کند. در صورت تطابق، webhook تأییدشده تلقی می‌شود.
  2. سپس Meta رویدادها را به این آدرس می‌فرستد (پیام‌های ورودی، وضعیت‌های تحویل، احکام مدیریتِ قالب‌ها).
  3. هر درخواست ورودی با هدر X-Hub-Signature-256 امضا شده است؛ GetMyBot امضا را با App secret بررسی می‌کند — به همین دلیل این مشخصه هنگام اتصال لازم است.

پنجرهٔ نشست ۲۴ ساعته

WhatsApp مکاتبهٔ آغازگرانه را محدود می‌کند: پیام‌های آزاد را فقط تا ۲۴ ساعت پس از آخرین پیام ورودی کاربر می‌توان به او فرستاد. هر پیام ورودی جدید از کاربر پنجره را به‌روز می‌کند.

خارج از پنجرهٔ ۲۴ ساعته نمی‌توان پیام آزاد فرستاد — تنها راه نوشتن دوباره برای کاربر (re-engage) یک قالب پیام تأییدشده است. از این رو قالب‌ها ابزار کلیدی همه‌رسانی و یادآوری در WhatsApp‌اند.

قالب‌های پیام

قالب (message template) پیامی است که از پیش با Meta هماهنگ شده و می‌توان آن را خارج از پنجرهٔ نشست فرستاد. مدیریت قالب‌ها در رابط کاربری GetMyBot است.

مدیریت قالب‌ها کجاست

بات‌ها ← نزد کانال WhatsApp آیکون «قالب‌های پیام» (📄) ← گفت‌وگوی «قالب‌های کانال WhatsApp». در گفت‌وگو دکمه‌ها:

  • «ایجاد قالب» — ساختن قالب جدید.
  • «همگام‌سازی» — واکشی کاتالوگ قالب‌ها از Meta (به‌روزرسانی وضعیت‌ها و فهرست).

دسته‌بندی قالب‌ها

  • MARKETING (بازاریابی) — تخفیف‌ها، اعلان‌ها، همه‌رسانی‌ها.
  • UTILITY (خدماتی) — اعلان‌های مبتنی بر اقدام کاربر (وضعیت سفارش‌ها، یادآوری‌ها).
  • AUTHENTICATION (احراز هویت) — کدهای تأیید.

فیلدهای قالب

  • نام — حروف کوچک لاتین، ارقام و _، تا ۵۱۲ نویسه.
  • زبان — لوکال Meta.
  • دسته — یکی از سه دستهٔ بالا.

برای دسته‌های بازاریابی و خدماتی علاوه بر این:

  • سرصفحه — بدون / متن / تصویر / ویدیو / سند. برای سرصفحهٔ رسانه‌ای یک فایل نمونه بارگذاری می‌شود.
  • بدنه — اجباری، تا ۱۰۲۴ نویسه. متغیرها با {{1}}، {{2}} … به‌ترتیب دقیق از ۱ تا N و بدون جاافتادگی نشان داده می‌شوند.
  • پاورقی — تا ۶۰ نویسه.
  • دکمه‌ها — تا ۱۰: پاسخ سریع، پیوند (تا ۲)، تلفن (۱)، کپی کد (۱).
  • برای هر متغیر {{n}} باید یک مقدار نمونه تعیین شود — این شرط Meta برای مدیریت است.

برای دستهٔ احراز هویت بدنه را خود Meta ثابت می‌کند؛ این‌ها تنظیم می‌شوند: مدت اعتبار کد (۱–۹۰ دقیقه)، توصیهٔ امنیتی و متن دکمهٔ کپی کد.

مدیریت (بازبینی)

دکمهٔ «ایجاد» بلافاصله قالب را به بازبینی Meta می‌فرستد — مرحلهٔ جداگانهٔ «ارسال برای بررسی» وجود ندارد. حکم به‌صورت ناهمگام (از طریق webhook) می‌رسد و فهرست قالب‌ها خودکار به‌روز می‌شود. وضعیت‌ها:

  • PENDING (در حال بررسی)
  • APPROVED (تأییدشده)
  • REJECTED (ردشده) — با ذکر دلیل
  • و همچنین PAUSED، DISABLED، IN_APPEAL، PENDING_DELETION.

قالب‌ها را می‌توان در وضعیت‌های APPROVED، REJECTED، PAUSED ویرایش کرد. نام و زبان قابل تغییر نیستند؛ در قالب‌های تأییدشده دسته نیز قفل است.

استفاده از قالب در یک واکنش

ارسال قالب یک اقدام واکنش است:

  1. در سازندهٔ واکنش، «اقدام‌ها» ← «افزودن اقدام» ← «ارسال قالب WhatsApp» را باز کنید.
  2. این اقدام تنها زمانی در دسترس است که بات یک کانال WhatsApp با پشتیبانی قالب متصل داشته باشد.
  3. تنها یک قالب تأییدشده (APPROVED) انتخاب می‌شود.
  4. پارامترها پر می‌شوند: مقادیر متغیرهای {{n}} در بدنه، سرصفحهٔ متنی، سرصفحهٔ رسانه‌ای از طریق پیوند، پارامترهای دکمه‌های URL. در پارامترها می‌توان از متغیرهای جایگزینی استفاده کرد.

کانال واقعی ارسال را کانال رویداد تعیین می‌کند: اگر رویداد از WhatsApp آمده باشد، قالب به WhatsApp می‌رود.

گفت‌وگوها و پیوست‌ها

اپراتور می‌تواند در گفت‌وگوی WhatsApp پاسخ دهد و پیوست بفرستد — تصویر، ویدیو یا سند — با در نظر گرفتن پنجرهٔ ۲۴ ساعته (خارج از پنجره مکاتبهٔ آزاد در دسترس نیست). رسانه‌های ورودی از مشترکان از طریق پروکسی واکشی و در گفت‌وگو نمایش داده می‌شوند.

تعرفه‌گذاری

GetMyBot گفت‌وگوهای WhatsApp (conversations) را بر اساس دسته‌ها ثبت می‌کند — marketing / utility / authentication / service. در نسخهٔ فعلی این فقط ثبت برای رصدپذیری (record-only) است: بابت گفت‌وگوها از موجودی کسر نمی‌شود.

بیشتر بخوانید