صفحه اصلی SDK و API ارسال اطلاعات به گپیفای (کار با SDK فرانت‌اند)

ارسال اطلاعات به گپیفای (کار با SDK فرانت‌اند)

آخرین به‌روزرسانی در تاریخ Jun 10, 2024

SDK گپیفای به شما این اجازه را می‌دهد تا اطلاعات تکمیلی از کاربر خود را به سمت گپیفای ارسال کنید.

در صورتی که شما اسکریپت گپیفای را بر روی سایت خود قرار داده باشید، SDK گپیفای، آبجکت window.$gapify را expose می‌کند. برای اینکه مطمئن شوید که SDK به صورت کامل لود شده است،‌ مطمئن شوید که ایونت gapify:ready را به صورت زیر چک می‌کنید:

window.addEventListener("gapify:ready", function () {
  // Use window.$gapify here
  // ...
});

اگر می‌خواهید به پیام‌هایی که در ویجت ارسال می‌شوند گوش دهید، می‌توانید از ایونت زیر استفاده کنید:

window.addEventListener('gapify:on-message', function(e) {
  console.log('gapify:on-message', e.detail)
})

تنظیمات SDK

برای مخفی کردن آیکون ویجت بر روی وبسایت، می‌توانید از تنظیمات زیر استفاده کنید.

توجه: اگر از این تنظیمات استفاده کنید، باید تریگر کردن ویجت را نیز به کار ببرید.

window.gapifySettings = {
  hideMessageBubble: false,
  position: "left", // This can be left or right
  locale: "en", // Language to be set
  useBrowserLanguage: false, // Set widget language from user's browser
  type: "standard", // [standard, expanded_bubble]
  darkMode: "auto", // [light, auto]
};

استفاده‌ی خودکار از زبان مرورگر در ویجت لایوچت

برای اینکه ویجت لایوچت شما از زبان مرورگر کاربر استفاده کند، مقدار useBrowserLanguage را true کنید. اگر زبان مرورگر کاربر توسط گپیفای پشتیبانی نشود، مقدار محلی تنظیم شده در locale استفاده خواهد شد. در صورتی که این مقدار نیز موجود نباشد، ویجت به locale تنظیم‌شده در داشبورد ایجنت‌ها (اپراتورها) باز خواهد گشت.

طراحی‌های ویجت

گپیفای از دو طراحی برای آیکون ویجت پشتیبانی می‌کند:

  1. ۱- طراحی استاندارد دایره‌ای: آیکون به صورت دایره نشان داده می‌شود.

  2. ۲- آیکون بسط‌داده‌شده:‌ آیکون به صورت یک مستطیل دارای متن نمایش داده می‌شود.

در صورتی که از آیکون بسط‌داده‌شده استفاده می‌کنید، می‌توانید متنی که بر روی آن نوشته شده است را از طربق تغییر پارامتر launcherTitle در gapifySettings به صورت زیر ویرایش کنید:

window.gapifySettings = {
  type: "expanded_bubble",
  launcherTitle: "Chat with us",
};

فعال کردن پنجره‌ی بازشو (pop out window)

برای اینکه پنجربه‌ی بازشو را فعال کنید (یعنی حالت بازشده‌ی ویجت را در یک صفحه‌ی جدای مرورگر باز کنید)، این تنظیمات را به gapifySettingsاضافه کنید. این آپشن به صورت پیش‌فرض غیرفعال است.

window.gapifySettings = {
  // ...Other Config
  showPopoutButton: true,
}

You can also popout the chat window programatically with the `popoutChatWindow()` method.

تابعی برای فعال کردن پنجره‌ی بازشو

شما می‌توانید ویجت را با استفاده از تابع popoutChatWindow() را به صورت زیر باز کنید.

window.$gapify.popoutChatWindow();

تغییر وضعیت قابل مشاهده بودن ویجت

اگر می‌خواهید آیکون ویجت را مخفی یا قابل مشاهده کنید، می‌توانید با استفاده از toggleBubbleVisibility('show/hide') این کار را انجام دهید. مثال:

window.$gapify.toggleBubbleVisibility("show"); // to display the bubble
window.$gapify.toggleBubbleVisibility("hide"); // to hide the bubble

باز و بسته کردن ویجت

در صورتی که می‌خواهید ویجت را باز و بسته کنید، از توابع زیر استفاده کنید:

window.$gapify.toggle();

// Toggle widget by passing state
window.$gapify.toggle("open"); // To open widget
window.$gapify.toggle("close"); // To close widget

تنظیم و ست کردن مشخصات کاربر در ویجت

شما می‌توانید نام، ایمیل، آدرس آواتار و شماره تلفن کاربری که در ویجت به شما پیام می‌دهد را به صورت خودکار ست کنید.

window.$gapify.setUser("<unique-identifier-key-of-the-user>", {
  email: "<email-address-of-the-user@your-domain.com>",
  name: "<name-of-the-user>",
  avatar_url: "<avatar-url-of-the-user>",
  phone_number: "<phone-number-of-the-user>",
});

تابع setUser یک شناساگر (identifier) دریافت می‌کند که می‌تواند معادل id کاربر در پایگاه‌داده‌ی شما بوده یا هر پارامتر یکتای دیگری باشد که نشان‌دهنده‌ی یک کاربر یکتا است.

اطمینان حاصل کنید که با لاگ‌اوت کردن کاربرتان، سشن را reset می‌کنید.

احراز هویت با استفاده از HMAC

برای پیشگیری از جعل هویت و خصوصی نگه داشتن مکالماتتان با مشتری‌های خود، ما توصیه می‌کنید تا یک سیستم احراز هویت راه‌اندازی کنید. این سیستم از طریق تولید کردن یک HMAC (Hash Based Message Authentication Code) بر مبنای مشخصه‌ی identifier و با استفاده از الگوریتم SHA256 کار می‌کند. در کنار identifier شما می‌توانید identifier_hash را نیز پاس دهید تا مطمئن شوید که کاربر، کاربر درستی است.

window.$gapify.setUser(`<unique-identifier-key-of-the-user>`, {
  name: "", // Name of the user
  avatar_url: "", // Avatar URL
  email: "", // Email of the user
  identifier_hash: "", // Identifier Hash generated based on the webwidget hmac_token
  phone_number: "", // Phone Number of the user
  description: "", // description about the user
  country_code: "", // Two letter country code
  city: "", // City of the user
  company_name: "", // company name
  social_profiles: {
    twitter: "", // Twitter user name
    linkedin: "", // LinkedIn user name
    facebook: "", // Facebook user name
    github: "", // Github user name
  },
});

تنظیم کردن و ارسال ویژگی‌های سفارشی (Custom Attributes)

برای ست کردن اطلاعات اضافی در مورد مشتری خودتان،‌ می‌توانید از ویژگی‌های سفارشی استفاده کنید. شما باید از بخش تنظیمات در پنل ایجنت‌ها، ویژگی‌های سفارشی را برای گفتگو یا مخاطب تعریف کنید و سپس با استفاده از SDK آن‌ها را نیز به صورت خودکار تنظیم کنید.

برای اینکار کافی است به صورت زیر از setCustomAttributes استفاده کنید.

window.$gapify.setCustomAttributes({
  accountId: 1,
  pricingPlan: "paid",

  // Here the key which is already defined in custom attribute
  // Value should be based on type (Currently support Number, Date, String and Number)
});

شما می‌توانید این اطلاعات ست‌شده را در پنل ایجنت‌ها و در پنل کناری مکالمه (سمت چپ در زبان فارسی) مشاهده کنید.

برای پاک کردن یک ویژگی سفارشی از deleteCustomAttribute به شکل زیر استفاده کنید.

window.$gapify.deleteCustomAttribute("attribute-key");

تنظیم زبان به صورت دستی

برای تنظیم زبان به صورت دستی از تابع setLocale استفاده کنید.

window.$gapify.setLocale("en");

برچسب‌گذاری بر روی مکالمات

در صورتی که کاربر هیچ مکالمه‌ای را پیش از این شروع نکرده باشد، می‌توانید با استفاده از توابع زیر، برچسب‌گذاری را انجام دهید:

window.$gapify.setLabel("support-ticket");

window.$gapify.removeLabel("support-ticket");

رفرش کردن سشن (از این تابع در زمان لاگ‌اوت کردن کاربرهایتان استفاده کنید)

window.$gapify.reset();

خطاهای ویجت

برای اینکه از خطاهای موجود در ویجت آگاه شوید، مطمئن شوید که به ایونت gapify:event گوش می‌دهید.

window.addEventListener("gapify:error", function () {
  // ...
});