رہنمائی

ویب وجیٹ

ایک اسکرپٹ ٹیگ سے AskAIs چیٹ اپنی ویب سائٹ پر شامل کریں، سائن ان شدہ وزیٹرز کی شناخت کریں اور اس کی شکل و صورت بدلیں۔

تکنیکی نام جیسے window.SingChat وجٹ اور API کا حصہ ہیں۔ انہیں اپنے کوڈ میں بالکل ویسے ہی رکھیں۔

ویب وجیٹ ایک ہی اسکرپٹ widget.js ہے، جو askais.com سے فراہم کیا جاتا ہے۔ یہ آپ کے صفحات پر چیٹ کھولنے کا بٹن شامل کرتا ہے اور چیٹ ونڈو کو ایک Shadow DOM کے اندر بناتا ہے، اس لیے آپ کی سائٹ کے اسٹائلز اور وجیٹ کے اسٹائلز ایک دوسرے سے الگ رہتے ہیں۔

اسے اپنی سائٹ پر شامل کریں

یہ کوڈ ہر اس صفحے پر </body> سے پہلے پیسٹ کریں جہاں چیٹ نظر آنی چاہیے۔ آپ کی ایپ ID ترتیبات → ان باکسز میں ہے۔

<script src="https://askais.com/widget.js"
  data-app-id="YOUR_APP_ID"
  data-base-url="https://askais.com"
  async></script>

آپ کی اپنی سائٹ پر data-base-url لازمی ہے: اس کے بغیر وجیٹ اپنا سرور askais.com کے بجائے آپ کے ڈومین پر تلاش کرتا ہے۔

⚠️ widget.js کو askais.com سے لوڈ کریں

widget.js کو ڈاؤن لوڈ نہ کریں اور نہ ہی اسے اپنے کوڈ میں بنڈل کریں۔ askais.com سے لوڈ ہونے پر یہ ہمیشہ موجودہ ورژن چلاتا ہے؛ اس کی کاپی پرانی حالت میں رک جاتی ہے اور ہر فکس اور ہر نئے فیچر سے محروم رہتی ہے۔

اسکرپٹ کے ایٹریبیوٹس

سب کچھ اسکرپٹ ٹیگ پر data- ایٹریبیوٹس سے سیٹ کیا جاتا ہے:

  • data-app-id — لازمی۔ آپ کے ان باکس کی ایپ ID۔
  • data-base-url — آپ کی سائٹ پر لازمی۔ ہمیشہ https://askais.com۔
  • data-locale — اختیاری۔ وجیٹ کی زبان مقرر کرتا ہے، مثلاً ja یا zh-Hant۔ اسے چھوڑ دیں تو وجیٹ وزیٹر کی ڈیوائس کی زبان اپناتا ہے، اور پھر آپ کے صفحے کی lang۔
  • data-external-id — سائن ان شدہ صارف کے لیے آپ کی اپنی ID۔
  • data-email — صارف کی ای میل، جو آپ کی ٹیم کو دکھائی جاتی ہے۔
  • data-name — صارف کا نام، جو آپ کی ٹیم کو دکھایا جاتا ہے۔
  • data-avatar-url — صارف کی پروفائل تصویر کا لنک۔
  • data-hmac — شناختی دستخط، نیچے دیکھیں۔
  • data-attrs — اضافی تفصیلات JSON کی شکل میں، مثلاً {"plan":"Pro"}، جو وزیٹر کی پروفائل میں آپ کی ٹیم کو دکھائی جاتی ہیں۔ غلط JSON کو نظر انداز کر دیا جاتا ہے۔

data-embed، data-platform، data-app-version اور data-device-model کو ایپ میں چیٹ والا صفحہ خود سیٹ کرتا ہے۔ ایپ میں چیٹ (WebView) دیکھیں۔

سائن ان شدہ وزیٹرز

سائن ان شدہ صارف کے لیے اس کی تفصیلات اسکرپٹ ٹیگ میں شامل کریں۔ آپ کی ٹیم دیکھ سکتی ہے کہ وہ کس سے بات کر رہی ہے، اور چیٹ دوسری ڈیوائسز پر بھی صارف کے ساتھ رہتی ہے:

<script src="https://askais.com/widget.js"
  data-app-id="YOUR_APP_ID"
  data-base-url="https://askais.com"
  data-external-id="user_123"
  data-email="ada@example.com"
  data-name="Ada Lovelace"
  data-attrs='{"plan":"Pro"}'
  data-hmac="SIGNATURE_FROM_YOUR_SERVER"
  async></script>

data-external-id کے بغیر وجیٹ ہر براؤزر کو اس کی اپنی گمنام ID دیتا ہے، جو براؤزر کی local storage میں محفوظ رہتی ہے، اس لیے اس براؤزر میں صفحہ دوبارہ لوڈ کرنے پر بھی چیٹ کی ہسٹری برقرار رہتی ہے۔ اگر ان باکس میں چیٹ سے پہلے کا فارم ہو تو گمنام وزیٹرز چیٹ شروع ہونے سے پہلے اسے پُر کرتے ہیں۔

تصدیق شدہ شناخت (HMAC)

  • hmac دراصل externalId کا HMAC-SHA256 ہے، جو ان باکس کی خفیہ کلید سے بنایا جاتا ہے اور چھوٹے حروف والے hex میں لکھا جاتا ہے۔
  • اسے اپنے سرور پر حساب کریں۔ خفیہ کلید کبھی کسی صفحے یا ایپ میں نہیں جاتی۔
  • خفیہ کلید ان باکس بناتے وقت ایک بار دکھائی جاتی ہے، اور دوبارہ تب جب آپ اسے ترتیبات → ان باکسز میں گھماتے ہیں۔ اسے گھمانے سے تمام پرانے دستخط ناکارہ ہو جاتے ہیں۔
  • data-external-id ہمیشہ data-hmac کے ساتھ بھیجیں۔ دستخط کو external ID کے مقابلے میں جانچا جاتا ہے، اس لیے صرف ای میل پر بنایا گیا دستخط مسترد ہو جاتا ہے۔
  • غلط دستخط کی صورت میں وجیٹ کنیکٹ نہیں ہو سکتا۔ data-hmac کے بغیر تفصیلات ویسے ہی مان لی جاتی ہیں جیسے صفحہ انہیں دیتا ہے، اس لیے جو بھی صفحہ بدل سکتا ہے وہ کسی اور ہونے کا دعویٰ کر سکتا ہے۔

Node.js کے لیے مثال:

import { createHmac } from "node:crypto";

// Runs on your server. INBOX_SECRET_KEY never leaves it.
const hmac = createHmac("sha256", INBOX_SECRET_KEY)
  .update(user.id) // the exact value you pass as data-external-id
  .digest("hex");

JavaScript سے وجیٹ شروع کرنا

وجیٹ کو خود شروع کرنے کے لیے، مثلاً جب آپ کے صفحے کو معلوم ہو جائے کہ صارف کون ہے، اسکرپٹ کو data-app-id کے بغیر لوڈ کریں اور اس کے لوڈ ہونے کے بعد window.SingChat.start() کال کریں:

<script src="https://askais.com/widget.js"></script>
<script>
  window.SingChat.start({
    appId: "YOUR_APP_ID",
    baseUrl: "https://askais.com",
    // optional, for a signed-in user:
    externalId: "user_123",
    email: "ada@example.com",
    name: "Ada Lovelace",
    hmac: "SIGNATURE_FROM_YOUR_SERVER",
  });
</script>

start() وہ واحد میتھڈ ہے جو اسکرپٹ فراہم کرتا ہے۔ وجیٹ کو کھولنے، بند کرنے یا اس کے ایونٹس سننے کا کوئی میتھڈ نہیں ہے؛ وزیٹرز اسے چیٹ بٹن سے کھولتے ہیں۔

شکل و صورت اور رویہ

  • ترتیبات → ان باکسز، پھر کسی ان باکس کو پھیلائیں: بنیادی رنگ اور متن کا رنگ، پوزیشن (نیچے دائیں یا نیچے بائیں)، بلبلے کا سائز، ہلکا یا گہرا پس منظر، ونڈو کا عنوان اور ذیلی عنوان، لائیو پیش منظر کے ساتھ۔
  • چیٹ سے پہلے کا فارم (اسی جگہ): چیٹ شروع ہونے سے پہلے گمنام وزیٹرز سے ان کی ای میل، نام، فون یا کمپنی پوچھیں۔
  • اجازت یافتہ آریجنز (اسی جگہ): وہ ویب سائٹس جو اس ان باکس کا وجیٹ لوڈ کر سکتی ہیں۔ خالی فہرست ہر سائٹ کو اجازت دیتی ہے۔
  • ویجٹ برانڈنگ (اسی جگہ): چیٹ کے نیچے “Powered by” والی لائن۔ آپ اسے چھپا سکتے ہیں یا وہاں اپنا نام دکھا سکتے ہیں یا نہیں، یہ آپ کے پلان پر منحصر ہے۔
  • AI کا خوش آمدید پیغام AI ایجنٹ میں سیٹ ہوتا ہے، کلک کیے جا سکنے والے FAQ بلبلے ترتیبات → عمومی سوالات میں، اور مضامین Help Center میں۔

سیکیورٹی

  • ایپ ID عوامی ہے اور آپ کے HTML میں محفوظ ہے۔
  • ان باکس کی خفیہ کلید صرف آپ کے سرور پر رہنی چاہیے۔
  • جب بھی صفحے کو معلوم ہو کہ صارف کون ہے، تصدیق شدہ شناخت (HMAC) استعمال کریں۔
  • اجازت یافتہ آریجنز کو اپنے ڈومینز تک محدود رکھیں تاکہ وجیٹ دوسری سائٹس پر لوڈ نہ ہو سکے۔