مستندات در سمت کاربر اعمال و این امکان را به شما می‌دهد تا ابزارکی که برای او نمایش داده می‌شود را مدیریت یا از آن برای ارسال و دریافت اطلاعات کاربر در 4Exam استفاده کنید‌.
استفاده از توابع و رویدادهای معرفی شده ، نیازمند دانش فنی در زمینه طراحی وب می باشد.

رویداد 4exam_ready

در صورت آماده شدن ابزارهای رصد و ارزشیابی بر پایه هوش مصنوعی جهت استفاده ، این رویداد اجرا می شود.
دقت کنید: توابعی که در ادامه خواهید دید ، باید در کد روبرو (داخل رویداد 4exam_ready) قرار بگیرند تا بدون ایجاد مشکل قابل اجرا باشند .

<script>
    window.addEventListener('4exam_ready', function () {
        // function...
        // Goftino.setUser(...);
        // Goftino.getUser(...);
        // Goftino.setWidget(...);
        // Goftino.sendMessage(...);
        // Goftino.open();
        // Goftino.close();
        // Goftino.toggle();
    });
</script>
live_helpنمونه کد راهنما

رویداد 4exam_sendMessage

در صورت ارسال هر پیام از سوی کاربر ، این رویداد اجرا شده و به نوع و محتوای پیام ارسالی دسترسی خواهید داشت.

ParameterTypeتوضیح
detail.typestringنوع پیام ارسالی کاربر یکی از عبارت های روبرو می باشد
detail.contentstringمحتوای پیام ارسالی کاربر که از نوع text یا file یا voice باشد
detail.contentarrayمحتوای پیام ارسالی کاربر که یکی از انواع فرم ها باشد
window.addEventListener('4exam_sendMessage', function (d) {

    var message_type = d.detail.type;
    // "text" , "file" , "voice" , "startForm" , "delayForm" , "offlineForm"
     
    var message_content = d.detail.content;
    // If message_type is text,file,voice :
    // "hi, I have question..."
// If message_type is form : // [ // { label : "label1", value : "value1" }, // ... // ] });
live_helpنمونه کد راهنما

رویداد 4exam_getMessage

در صورت دریافت پیام جدید از اپراتورها ، این رویداد اجرا شده و به نوع و محتوای پیام دریافتی دسترسی خواهید داشت.

ParameterTypeتوضیح
detail.typestringنوع پیام دریافتی کاربر یکی از عبارت های روبرو می باشد
detail.contentstringمحتوای پیام دریافتی کاربر
window.addEventListener('4exam_getMessage', function (d) {

    var message_type = d.detail.type;
    // "text" , "file" , "voice"
     
    var message_content = d.detail.content;
    // "hi, thanks for joining chat..."
});
live_helpنمونه کد راهنما

رویداد 4exam_openWidget

در صورت باز شدن ابزارهای رصد و ارزشیابی بر پایه هوش مصنوعی ، این رویداد اجرا خواهد شد.

window.addEventListener('4exam_openWidget', function () {
    // function...
});
live_helpنمونه کد راهنما

رویداد 4exam_closeWidget

در صورت بسته شدن ابزارهای رصد و ارزشیابی بر پایه هوش مصنوعی ، این رویداد اجرا خواهد شد.

window.addEventListener('4exam_closeWidget', function () {
    // function...
});
live_helpنمونه کد راهنما

تابع setUser

با استفاده از این تابع می توانید اطلاعات کاربری که به وب سایت شما لاگین کرده را به 4Exam بفرستید تا در بخش مشخصات کاربر برای هر گفتگو نمایش داده شده و به آنها دسترسی داشته باشید.
دقت کنید: این تابع در رویداد 4exam_ready باید اعمال شود.

FieldTypeتوضیح
emailstringایمیل کاربر لاگین شده
namestringنام کاربر لاگین شده
aboutstringدرباره ی کاربر لاگین شده
phonestringتلفن کاربر لاگین شده
avatarstringعکس کاربر لاگین شده
tagsstringبرچسب
forceUpdatebooleanدر صورت وجود مشخصات کاربر در 4Exam، این اطلاعات جایگزین قبلی شود؟
Goftino.setUser({
   email : '[email protected]',
   name : 'Ali Rahimi',
   about : 'about me...',
   phone : '09123456789',
   avatar : 'http://4exam.com/mypic.jpg',
   tags : 'tag1,tag2,tag3',
   forceUpdate : true
});
live_helpنمونه کد راهنما

تابع getUser

با ارسال این درخواست به 4Exam می توانید اطلاعات کاربر را دریافت و در صورت نیاز در سایت خود ذخیره و استفاده نمایید.
پارامترهای خروجی از این تابع شامل موارد زیر است :

FieldTypeتوضیح
statusstringوضعیت دریافت اطلاعات
namestringنام کاربر
emailstringایمیل کاربر
phonestringتلفن کاربر
aboutstringتوضیحات کاربر
avatarstringعکس کاربر
firstVisitstringتاریخ اولین بازدید کاربر
pageViewstringصفحات بازدید شده کاربر
locationstring موقعیت کاربر
browserstringاطلاعات مرورگر کاربر
osstringسیستم عامل کاربر
hasChatbooleanکاربر تاکنون گفتگویی داشته است؟
tagsstringبرچسب
Goftino.getUser( function(data) {
    var userData = data;
});

// example userData object on Success
{
    status : "success",
    name : "Ali Rahimi",
    email : "[email protected]",
    phone : "09123456789",
    about : "some info about user...",
    avatar : "http://4exam.com/mypic.jpg",
    firstVisit : "2019-02-22T19:05:17.067Z",
    pageView : "25",
    location : "Iran",
    browser : "Chrome 72.0.3626",
    os : "Windows 10",
    hasChat : true,
    tags : "tag1,tag2,tag3"
}

// example userData object on Error
{
    status: "error",
    message: "User Not Found"
}
live_helpنمونه کد راهنما

تابع setWidget

در مواقعی تمایل به تغییر جایگاه ابزارک دارید و یا شاید نخواهید آیکون پیش فرض ابزارک در سایت نمایش داده شود و به دکمه ای با سلیقه خود در بخش خاصی از صفحه نیاز دارید.(نمونه گرافیکی دکمه ابزارک دلخواه در تصویر روبرو قابل مشاهده است)
حتی می توانید باز و بسته شدن پنجره گفتگو را با دستورات خودتان در سایت اعمال کنید.
ضمن اینکه امکان حذف صدای هشدار پیام جدید برای کاربر و نمایش تعداد پیام های خوانده نشده در این قسمت فراهم شده است.
دقت کنید: در صورت مخفی کردن آیکون ابزارک، نیاز دارید از توابع open و close و یا toggle استفاده کنید.

FieldTypeتوضیح
iconUrlstringآدرس فایل آیکون دلخواه برای ابزارک
cssUrlstringآدرس فایل CSS سفارشی برای ابزارک
soundUrlstringآدرس فایل صدای دلخواه برای پیام جدید
marginRightintegerفاصله ابزارک از سمت راست صفحه
marginLeftintegerفاصله ابزارک از سمت چپ صفحه
marginBottomintegerفاصله ابزارک از پایین صفحه
hasIconboolean نمایش یا عدم نمایش آیکون ابزارک در صفحه
hasSoundboolean پخش یا عدم پخش صدای هشدار پیام جدید
counterstringنام class یا id باکس شمارنده پیام جدید
(قبل از نام class نقطه و قبل از نام id عبارت # بگذارید)
sample
Goftino.setWidget({
    iconUrl: 'http://4exam.com/myicon.jpg',
    cssUrl: 'http://4exam.com/mystyle.css',
    soundUrl: 'http://4exam.com/alert.mp3',
    marginRight: 30,
    marginLeft: 30,
    marginBottom: 30,
    hasIcon: false,
    hasSound: false,
    counter: '#div_idName'  //or '.div_className'
});
live_help نمونه کد راهنما - دکمه مجزا
live_helpنمونه کد راهنما - تغییر جایگاه ابزارک
live_helpنمونه کد راهنما - تغییر جایگاه ابزارک در موبایل

تابع getUserId

اگر نیاز دارید گفتگوهای یک کاربر را حتی با مرورگر یا دستگاه های مختلف ، بصورت یکپارچه داشته باشید ، ابتدا با استفاده از این تابع شناسه یکتای کاربر (id) در 4Exam را دریافت و در پایگاه داده سایت خود ذخیره کنید ، سپس با کمک تابع setUserId در زمان لازم میتوانید آن را فراخوانی و اعمال کنید.
شناسه یکتای کاربر یک عبارت 64 حرفی است.

var user_id = Goftino.getUserId();
live_helpنمونه کد راهنما

تابع setUserId

بطور کلی 4Exam برای کاربر در هر مرورگر یا دستگاه ، شناسه (id) مجزایی ایجاد می کند و سنجش هویت کاربر را بر اساس مرورگری که در آن ابزارهای رصد و ارزشیابی بر پایه هوش مصنوعی نمایش داده شده است انجام می دهد. در صورت داشتن شناسه یکتای کاربر در 4Exam و اعمال این تابع ، مخاطب شما می تواند در هر مرورگر یا دستگاه ، ادامه گفتگوی قبلی خود را با شما داشته باشد و از ایجاد گفتگوی جدید برای آن شخص جلوگیری شود.
دقت کنید: پس از اجرای این تابع، در صورت وجود شناسه قبلی، شناسه جدید اعمال شده، جایگزین آن خواهد شد.

Goftino.setUserId('a0a1a2a3a4a5a6a7...');

// setUserId with callback
Goftino.setUserId('a0a1a2a3a4a5a6a7...', function(callback) {
    if(callback.status === 'success'){ }
    if(callback.status === 'error'){ }
});
live_helpنمونه کد راهنما

تابع unsetUserId

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

Goftino.unsetUserId();

تابع sendMessage

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

FieldTypeتوضیح
textstringمتن پیام
Goftino.sendMessage({
   text: 'Hi, I am Ali...'
});

تابع open

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

تابع close

با استفاده از این تابع می توانید ابزارهای رصد و ارزشیابی بر پایه هوش مصنوعی را ببندید.

تابع toggle

با استفاده از این تابع ابزارهای رصد و ارزشیابی بر پایه هوش مصنوعی اگر باز باشد ، بسته و اگر بسته باشد ، باز خواهد شد.