Keyda Business
BangladeshEnglish সাইন ইন করুন বিনামূল্যে শুরু করুন
Keyda Business ডকসরেফারেন্স

উইজেট API

ডেভেলপারদের জন্য, অথবা যে কেউ যদি তাদের নিজস্ব বোতাম থেকে চ্যাট খুলতে চান।

ইনস্টল করা হচ্ছে

<script src="https://keyda.in/business/widget.js"
        data-key="kb_live_your_key_here" async></script>

স্ক্রিপ্ট ট্যাগে শুধুমাত্র src এবং data-key প্রয়োজন। বাকি সবকিছু — রং, অবস্থান, অভিবাদন, ভাষা — আপনার ড্যাশবোর্ড থেকে আসে, তাই এগুলো পরিবর্তন করতে আপনাকে কখনো সাইট পুনরায় ডিপ্লয় করতে হয় না।

উইজেটটি ইনস্টল → আপনার বট যে ভাষায় কথা বলে-তে সেট করা ভাষায় আঁকা হয়: এর বাটন, প্লেসহোল্ডার এবং নোটিস, এবং লেআউটের দিক (আরবি এবং উর্দু ডান-থেকে-বাম)। স্ট্রিংগুলো উইজেটের কনফিগারেশনের সাথেই আসে, তাই দ্বিতীয় কোনো রিকোয়েস্ট নেই এবং আপনার দিক থেকে অনুবাদ করার কিছু নেই।

মোড

ফ্লোটিং (ডিফল্ট)। কোণায় একটি লঞ্চার বাটন, যা একটি চ্যাট প্যানেল খোলে।

ইনলাইন। পৃষ্ঠায় একটি খালি কন্টেইনার রাখুন এবং চ্যাটটি সেখানে প্রদর্শিত হবে:

<div data-keyda-bot style="height:520px"></div>

কন্টেইনারটির একটি উচ্চতা প্রয়োজন। ইনলাইন মোডে চ্যাট সবসময় দৃশ্যমান থাকে, তাই এখানে খোলার বা বন্ধ করার কিছু নেই।

JavaScript API

স্ক্রিপ্ট লোড হওয়ার পর window.KeydaBot-এ পাওয়া যাবে:

কলএটি যা করে
KeydaBot.open()চ্যাট প্যানেল খোলে
KeydaBot.close()বন্ধ করে
KeydaBot.toggle()খোলে বা বন্ধ করে
KeydaBot.expand()প্যানেলটিকে উইন্ডোর সমান লম্বা এবং ৭৬০ পিক্সেল পর্যন্ত চওড়া করে
KeydaBot.shrink()স্ট্যান্ডার্ড কার্ডে ফিরে যান
KeydaBot.isOpentrue চ্যাট কখন দৃশ্যমান হবে
KeydaBot.isExpandedtrue যখন প্যানেলটি প্রসারিত থাকে
KeydaBot.clientIdএই পেজটি যে Client ID ব্যবহার করছে

উদাহরণ — আপনার নিজস্ব "Chat with us" বাটন থেকে চ্যাট ওপেন করুন:

<button onclick="KeydaBot.open()">Chat with us</button>
স্ক্রিপ্টটি অ্যাসিনক্রোনাসভাবে লোড হয়, তাই পেজ লোড হওয়ার পর মুহূর্তের জন্য window.KeydaBot নাও থাকতে পারে। পেজ পার্স হওয়ার সময় কল না করে কোনো ক্লিকের সাথে হ্যান্ডলার যুক্ত করুন।

এটি আপনার পেজে কেমন আচরণ করে

  • প্যানেলটি লঞ্চার বাটনের উপরে খোলে, যা তার জায়গায় স্থির থাকে এবং ক্লোজ কন্ট্রোল হিসেবে কাজ করে। এটিতে আবার ট্যাপ করলে, হেডারের ✕ চিহ্নে ক্লিক করলে অথবা Escape চাপলে চ্যাট বন্ধ হয়ে যায়।
  • দর্শকরা হেডার থেকে প্যানেলটি বড় করতে পারেন — এটি উইন্ডোর উচ্চতা এবং সর্বোচ্চ 760px পর্যন্ত চওড়া হতে পারে — এবং ব্রাউজার এই পছন্দ মনে রাখে। ফোনে প্যানেলটি ইতিমধ্যে পুরো স্ক্রিন জুড়ে থাকে, তাই সেখানে এই কন্ট্রোলটি দেখানো হয় না।
  • আপনার লোগো সাইজ সেটিং লোগো পরিবর্তন করে, বাটন নয়: লঞ্চার তার নিজের সাইজ বজায় রাখে এবং লোগো এর ভেতরে বড় হয়। বাটন সাইজ (ইনস্টল → অ্যাপিয়ারেন্স) বাটনটির নিজের আকার পরিবর্তন করে — ছোট, মাঝারি বা বড় — আকৃতি যাই হোক না কেন।
  • চারটি বাটন আকৃতি: আপনার লেবেলসহ একটি পিল, একটি গোল বাবল, একটি গোলাকার বর্গ এবং লেজযুক্ত একটি চ্যাট বাবল। লেজটি আপনার পেজের দিকে মুখ করা পাশে থাকে।
  • সবকিছু একটি shadow root-এর ভেতরে রেন্ডার হয়, তাই আপনার CSS উইজেটটিকে নষ্ট করতে পারবে না এবং উইজেটের CSS আপনার সাইটকে প্রভাবিত করবে না।
  • প্যানেলটি শুধুমাত্র তখনই লোড হয় যখন কোনো ভিজিটর এটি খোলে, তাই এটি আপনার পেজের গতি কমায় না।
  • একজন ভিজিটর ফিরে এলে তাদের কথোপকথন ২৪ ঘণ্টা পর্যন্ত চলতে থাকে, এরপর নতুন করে শুরু হয়। প্যানেলটি আবার খুললে থ্রেডটি পুনরুদ্ধার হয় — ফাইলসহ, এবং যে স্বাগত-ফ্লো প্রশ্নটি তখনও উত্তরের অপেক্ষায় ছিল তাও।
  • কম্পোজারের পেপারক্লিপ একজন ভিজিটরকে একটি মেসেজে সর্বোচ্চ তিনটি ছবি বা ডকুমেন্ট সংযুক্ত করতে দেয় (সাইজ ও টাইপ সীমা ও নিরাপত্তা-এ)। আপলোডের আগে ব্রাউজারে ছবির সাইজ কমিয়ে দেওয়া হয়, তাই একটি ১২-মেগাপিক্সেল ছবি পেজ থেকে মাত্র কয়েকশো কিলোবাইটে বের হয়। ইনস্টল-এর অধীনে ফাইল বন্ধ করলে বাটনটি চলে যাবে।
  • একটি স্বাগত ফ্লো সাধারণ বাবল হিসেবে চলে: পছন্দগুলো বাবলের নিচে বাটন হয়ে যায়, একটি ধাপ ঐচ্ছিক হলে একটি স্কিপ বাটন দেখা যায়, এবং কম্পোজারের প্লেসহোল্ডার প্রশ্ন হয়ে যায়। একটি সম্পন্ন ফ্লো ভিজিটরের ব্রাউজারে ৩০ দিন মনে রাখা হয়।
  • যদি অ্যাসিস্ট্যান্টের সাথে যোগাযোগ করা না যায়, তবে উইজেটটি একটি ছোট বার্তা দেখাবে এবং আপনার পেজে কোনো ত্রুটি দেখাবে না।

অ্যাপ SDK-এর ভেতরে

একই চ্যাট প্রতিটি SDK-তে চলে, তাই সংযুক্তি এবং স্বাগত ফ্লো কোনো রিলিজ ছাড়াই আপনার অ্যাপে পৌঁছে যায় — একটি ব্যতিক্রম বাদে। ওয়েব ভিউ থেকে ফাইল পিকার খোলা হোস্টের কাজ। iOS, React Native এবং Ionic প্যাকেজ ইতিমধ্যে এটি করে; Android এবং Flutter-এর জন্য SDK 0.1.4 বা তার পরের সংস্করণ প্রয়োজন। পুরনো সংস্করণে উইজেট শেলটি চিনতে পারে এবং কিছুই করে না এমন একটি বাটন দেখানোর বদলে পেপারক্লিপটি লুকিয়ে রাখে।

iOS-এ ছবি গ্রহণযোগ্য হলেই সিস্টেম শিট Take Photo অপশন দেখায়, এবং এটি বেছে নিলে এমন একটি অ্যাপ ক্র্যাশ করে যার Info.plist-এ কোনো NSCameraUsageDescription নেই। চ্যাটসহ বিল্ড শিপ করার আগে কি (key) যোগ করুন।
Next: App SDKs →