Skip to main content
Social media studio-র পাঠানো প্রতিটি ওয়েবহুক একই এনভেলপ ও স্বাক্ষর পদ্ধতি অনুসরণ করে। এই পেজে রিকোয়েস্টের হুবহু কাঠামো, সিগনেচার যাচাই করার পদ্ধতি এবং সাধারণ ইভেন্টের data ব্লক দেখতে কেমন তা দেখানো হয়েছে।

রিকোয়েস্টের ফরম্যাট

হেডার

প্রতিটি ডেলিভারিতে এই হেডারগুলো থাকে:

এনভেলপ

কাস্টম payloadTemplate কনফিগার না করলে বডি হলো চারটি ফিল্ডের একটি JSON অবজেক্ট:
  • event — ইভেন্টের হুবহু নাম (X-Webhook-Event-এর সাথে মেলে)
  • category — ইভেন্ট যে ক্যাটাগরির অন্তর্গত (যেমন post, inbox, subscription)
  • timestamp — ইভেন্ট কখন পাঠানো হয়েছে তার ISO-8601 টাইমস্ট্যাম্প
  • data — ইভেন্ট-নির্দিষ্ট পেলোড (নিচের উদাহরণ দেখুন)
রিট্রাইয়ে একই X-Webhook-Delivery-Id ব্যবহৃত হয়। এটিকে idempotency কী হিসেবে ব্যবহার করুন, যাতে রিট্রাই হওয়া ডেলিভারি আগেই সামলানো ইভেন্ট আবার প্রসেস না করে।

Signature Verification

প্রতিটি রিকোয়েস্ট বডি আপনার এন্ডপয়েন্টের সিক্রেট দিয়ে HMAC-SHA256 ব্যবহার করে স্বাক্ষর করা হয়। ডেলিভারিটি সত্যিই Social media studio থেকে এসেছে তা নিশ্চিত করতে প্রতিটি রিকোয়েস্টে এটি যাচাই করুন।
JSON হিসেবে পার্স করার আগে সবসময় কাঁচা রিকোয়েস্ট বডি দিয়ে যাচাই করুন — পার্স করা অবজেক্ট আবার সিরিয়ালাইজ করলে হোয়াইটস্পেস বদলে যায় এবং সিগনেচার অবৈধ হয়ে যায়।

উদাহরণ পেলোড

data ব্লকের গঠন ইভেন্টের উপর নির্ভর করে। বহুল ব্যবহৃত ক্যাটাগরিগুলোর প্রতিনিধিত্বমূলক কিছু উদাহরণ এখানে দেওয়া হলো।

পোস্ট

অনুমোদন

ইনবক্স

WhatsApp

সোশ্যাল অ্যাকাউন্ট

সাবস্ক্রিপশন

newPlanName ফিল্ডে অভ্যন্তরীণ প্ল্যান শনাক্তকারী থাকে, যেমন Advanced-এর জন্য scale।

AI

নলেজ হাব

অ্যানালিটিক্স

সেরা সময়

রেফারাল

২৬টি ক্যাটাগরির ১৬২টি ইভেন্টের পূর্ণ তালিকার জন্য ওয়েবহুক ওভারভিউ দেখুন।

কাস্টম পেলোড টেমপ্লেট

আপনার এন্ডপয়েন্ট ভিন্ন কাঠামো আশা করলে (যেমন Slack, Discord), ওয়েবহুক সাবস্ক্রিপশনে একটি payloadTemplate সেট করুন। ব্যবহারযোগ্য ভ্যারিয়েবল:
  • {{event}}
  • {{category}}
  • {{timestamp}}
  • {{data}} — সম্পূর্ণ data অবজেক্ট JSON হিসেবে
  • {{data.any_field}} — ইভেন্ট-নির্দিষ্ট পেলোডের যেকোনো নেস্টেড ফিল্ড
যে ভ্যারিয়েবলের মান পাওয়া যায় না তা যেমন আছে তেমনই থাকে (যেমন ইভেন্টে postId না থাকলে {{data.postId}} লিটারেল থাকে)। Discord ও Slack টেমপ্লেটের উদাহরণের জন্য ওভারভিউ পেজ দেখুন।

লোকালি পরীক্ষা করা

ডেভেলপমেন্টের সময়:
  1. আপনার লোকাল সার্ভার উন্মুক্ত করতে ngrok বা Cloudflare Tunnel-এর মতো টানেলিং টুল ব্যবহার করুন।
  2. সেটিংস → ওয়েবহুক-এ আপনার টানেল URL-এর দিকে নির্দেশ করে একটি ওয়েবহুক সাবস্ক্রিপশন তৈরি করুন।
  3. আসল কার্যকলাপ না ঘটিয়ে নমুনা ইভেন্ট পাঠাতে সাবস্ক্রিপশনের টেস্ট ইভেন্ট পাঠান বোতামে ক্লিক করুন।
  4. ভেরিফায়ার লেখার আগে কাঁচা রিকোয়েস্ট দেখতে চাইলে Webhook.site-এ পেলোড পরীক্ষা করুন।
আপনার এন্ডপয়েন্ট টানা ১০টি ডেলিভারিতে ব্যর্থ হলে সাবস্ক্রিপশন স্বয়ংক্রিয়ভাবে নিষ্ক্রিয় হয়ে যায়। সমস্যা ঠিক করার পর ড্যাশবোর্ড থেকে এটি আবার সক্রিয় করুন।