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 থেকে এসেছে তা নিশ্চিত করতে প্রতিটি রিকোয়েস্টে এটি যাচাই করুন।উদাহরণ পেলোড
data ব্লকের গঠন ইভেন্টের উপর নির্ভর করে। বহুল ব্যবহৃত ক্যাটাগরিগুলোর প্রতিনিধিত্বমূলক কিছু উদাহরণ এখানে দেওয়া হলো।
পোস্ট
অনুমোদন
ইনবক্স
সোশ্যাল অ্যাকাউন্ট
সাবস্ক্রিপশন
newPlanName ফিল্ডে অভ্যন্তরীণ প্ল্যান শনাক্তকারী থাকে, যেমন Advanced-এর জন্য scale।
AI
নলেজ হাব
অ্যানালিটিক্স
সেরা সময়
রেফারাল
২৬টি ক্যাটাগরির ১৬২টি ইভেন্টের পূর্ণ তালিকার জন্য ওয়েবহুক ওভারভিউ দেখুন।
কাস্টম পেলোড টেমপ্লেট
আপনার এন্ডপয়েন্ট ভিন্ন কাঠামো আশা করলে (যেমন Slack, Discord), ওয়েবহুক সাবস্ক্রিপশনে একটিpayloadTemplate সেট করুন। ব্যবহারযোগ্য ভ্যারিয়েবল:
{{event}}{{category}}{{timestamp}}{{data}}— সম্পূর্ণ data অবজেক্ট JSON হিসেবে{{data.any_field}}— ইভেন্ট-নির্দিষ্ট পেলোডের যেকোনো নেস্টেড ফিল্ড
postId না থাকলে {{data.postId}} লিটারেল থাকে)। Discord ও Slack টেমপ্লেটের উদাহরণের জন্য ওভারভিউ পেজ দেখুন।
লোকালি পরীক্ষা করা
ডেভেলপমেন্টের সময়:- আপনার লোকাল সার্ভার উন্মুক্ত করতে ngrok বা Cloudflare Tunnel-এর মতো টানেলিং টুল ব্যবহার করুন।
- সেটিংস → ওয়েবহুক-এ আপনার টানেল URL-এর দিকে নির্দেশ করে একটি ওয়েবহুক সাবস্ক্রিপশন তৈরি করুন।
- আসল কার্যকলাপ না ঘটিয়ে নমুনা ইভেন্ট পাঠাতে সাবস্ক্রিপশনের টেস্ট ইভেন্ট পাঠান বোতামে ক্লিক করুন।
- ভেরিফায়ার লেখার আগে কাঁচা রিকোয়েস্ট দেখতে চাইলে Webhook.site-এ পেলোড পরীক্ষা করুন।