Logo
client_api
API Icon

مستندات رایچت برای توسعه دهندگان

با استفاده از API‌های رایچت می‌توانید سیستم یا وب‌سایت خود را بیشتر با رایچت هماهنگ کنید‌. مثلا میتوانید اطلاعات کاربران وب سایت خود را در پنل گفتگوی رایچت نمایش دهید. در ادامه Api‌هایی که تا اکنون منتشر شده‌اند را مشاهده می‌کنید‌. رایچت همیشه در حال به‌روزرسانی هست پس منتظر API های جدید باشید :)‌.

ایجاد وب سایت

با استفاده از این API میتوانید در رایچت ثبت نام کنید. این قسمت بیشتر برای سیستم های سایت ساز و فروشگاه ساز که قصد دارند به صورت اتوماتیک برای هر کاربری که در سیستمشون ثبت نام میکنه یک اکانت رایچت ایجاد کنند و کد را نیز در سایت قرار دهند کاربرد دارد.

* برای استفاده از این قسمت ابتدا یک اپ از طریق این لینک ایجاد کنید و کلید API خود را دریافت کنید.

ROUTEMETHOD
https://api.raychat.io/v1/api/sitePOST

مقادیر ارسالی

FIELDTYPEDESCRIPTION
apiKeystringکلیدی که هنگام ایجاد اپلیکیشن در پنل دریافت کردید
sitestringآدرس سایتی که میخواهید در رایچت ثبت کنید
siteTitlestringعنوان سایتی که میخواهید در رایچت ثبت کنید
emailstringایمیل مدیر وب سایت
passwordstringرمز عبور
namestringنام مدیر وب سایت
phonestringتلفن مدیر وب سایت

مقادیر برگشتی

FIELDTYPEDESCRIPTION
messagestringپیام برگشتی از سرور
statusintوضعیت
codestringکد رایچت برای قرار دادن در وب سایت
userobjectاطلاعات کاربر ایجاد شده
tokenstringتوکن وب‌سایت
urlstringآدرس پنل مدیریت رایچت
webAppUrlstringآدرس اپلیکیشن تحت وب رایچت

* پاسخ بصورت JSON برگشت داده می‌شود.

* در صورت بروز خطا، علت در پاسخ توضیح داده خواهد شد.

* وضعیت برابر 1 به معنی موفقیت آمیز بودن ثبت نام است.

کُپی کردن!

// NodeJs Example
    request.post({
    url:'https://webapp.raychat.io/api/site',
    form: {
      apiKey:'Your Api Key',
      site:'https://example.com',
      siteTitle:' Example Title',
      email:'tech@raychat.io',
      password: 'Password',
      name:'Ehsan Younesi',
     phone:'09000000000'
    }
   }, function(err,httpResponse,body){
     /* ... */
   });
API Icon

مستندات رایچت برای توسعه دهندگان سمت کاربر

API سمت کاربر این امکان را به شما می‌دهد تا ابزارکی که برای کاربر نمایش داده می‌شود را مدیریت کنید. از آن می‌توانید برای مدیریت صفحه چت و همچنین ارسال اطلاعات کاربر به اپلیکیشن رایچت استفاده کنید‌. (برای مثال می‌توانید اطلاعات کاربری که به سایت شما لاگین کرده را به رایچت بفرستید تا در اپلیکیشن نمایش داده بشه و بعداً در آرشیو بهش دسترسی داشته باشید).

نکته: تمامی توابع و رویداد‌هایی که در ادامه توضیح داده خواهند شد باید طبق دستورالعمل سمت راست (داخل رویداد raychat_ready) نوشته شوند.

کُپی کردن!

    window.addEventListener('raychat_ready', function (ets) {
      // function or event 
    });

Raychat.setStyle()

با استفاده ازاین تابع میتوانید تغییراتی بر روی ظاهر آیکون ابزارک چت رایچت ایجاد کنید.

FIELDTYPEDESCRIPTION
backgroundColorstringرنگ پس زمینه آیکون ابزارک
borderRadiusstringحالت لبه‌ی آیکون ابزارک
widthstringعرض آیکون ابزارک
heightstringارتفاع آیکون ابزارک
boxShadowstringافزودن افکت سایه به آیکون ابزارک

کُپی کردن!

    window.Raychat.setStyle({
      backgroundColor : '#000',
      borderRadius : '50%',
      width : '70px',
      height : '70px',
      boxShadow : '0px 1px 5px 0px rgba(0,0,0,0.75)'
    });

Raychat.setPosition()

با استفاده ازاین تابع میتوانید موقعیت آیکون ابزارک چت را تغییر دهید. توجه داشته باشید که برای این که تغییر موقعیت ابزارک به درستی انجام شود حتما 4 موقعیت ذکر شده را ارسال کنید، به صورتی که حداکثر دو موقعیت مقدار داشته باشد و باقی فیلد ها مقدار "auto" داشته باشند.

FIELDTYPEDESCRIPTION
topstringفاصله از بالا
rightstringفاصله از راست
bottomstringفاصله از پایین
leftstringفاصله از چپ

کُپی کردن!

    window.Raychat.setPosition({
      top: 'auto',
      right : 'auto',
      bottom : '15px',
      left : '15px'
    });

Raychat.setUser()

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

FIELDTYPEDESCRIPTION
emailstringایمیل کاربر لاگین شده
namestringنام کاربر لاگین شده
aboutstringدرباره ی کاربر لاگین شده
phonestringتلفن کاربر لاگین شده
avatarstringعکس کاربر لاگین شده
updateOncebooleanدر هر بار فراخوانی این تابع اطلاعات کاربر به روز شود یا خیر

کُپی کردن!

    window.Raychat.setUser({
      email: 'tech@raychat.io',
      name: 'Ehsan Younesi',
      about: 'about me :)',
      phone: '09123456789',
      avatar: 'https://webapp.raychat.io/ehsan.png',
      updateOnce: true
    });

Raychat.getUser()

با استفاده از این تابع می توانید اطلاعات بازدیدکننده ای که در حال حاضر در وب سایت هست را دریافت کنید.

مقادیر برگشتی

KEYVALUE TYPEDESCRIPTION
idstringآیدی کاربر
namestringنام کاربر
emailstringایمیل
avatarstringعکس کاربر
onlinestringوضعیت کاربر
createdAtdateتاریخ ایجاد کاربر
metadataobjectداده‌های بیشتر
browserobjectاطلاعات مرورگر کاربر
phonestringشماره تلفن کاربر
aboutstringاطلاعات کاربر

کُپی کردن!

    var user = window.Raychat.getUser();
    //example user object 
    { id: '5992bc6d9e737c900e3058d3',
      name: 'Ehsan Younesi',
      email: 'tech@raychat.io',
      avatar: 'https://webapp.raychat.io/ehsan.png',
      online: true,
      createdAt: 2017-08-15T09:18:37.904Z,
      metadata: {
       userId: "2", // String
       createdAt: "2018-09-29", // Date
       totalPaid: 200000, // Number
       isActive: true // Boolean
      },
     browser : {
       "name" : "Chrome",
       "ver" : "60.0.3112.90",
       "os" : "Windows",
       "mobile" : false
      },
     phone: '0912345678',
     about: 'hello :)'
    }

Raychat.loadUser()

با این تابع میتوانید کاربرانی که در سیستم شما وارد پنل کاربری میشوند را بارگزاری کنید و مکالمات آنان را به صورت دائمی و پایدار نگه داری کنید; زمانی که کاربر با موفقیت بارگزاری شد رویداد raychat_new_user_loaded اجرا میشود.

نکته: برای به دست آوردن ای دی کاربر میتوانید از تابع getUser استفاده کنید

نکته: حتما توجه داشته باشید که با لود کردن کاربر جدید، اطلاعات کاربر فعلی (مکالمات و بقیه موارد) در صورتی که ای دی کاربر را در دیتابیسی ذخیره نداشته باشید برای همیشه غیرقابل دسترس خواهد بود.

FIELDTYPEDESCRIPTION
userIdstringای دی کاربر

کُپی کردن!

    window.Raychat.loadUser(userId);

Raychat.unloadUser()

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

نکته: برای اعمال تغییرات، بعد از صدا زدن این تابع، مرورگر کاربر از نو بارگذاری شود.

نکته: در صورتی که ای دی کاربر را قبل از صدا زدن این تابع در دیتابیسی ذخیره نکنید، لود کردن دوباره این کاربر غیر ممکن خواهد بود.

کُپی کردن!

    window.Raychat.unloadUser();

Raychat.sendOfflineMessage()

ارسال پیام از طریق ابزارک رایچت به کاربر.

نکته: این پیام صرفا در سمت کاربر نمایش داده می‌شود و اپراتور قادر به دیدن این پیام نمی باشد و همچنین مکالمه محسوب نمی‌شود و با رفرش کردن صفحه پاک می‌شود.

کُپی کردن!

    window.Raychat.sendOfflineMessage('سلام وقت بخیر');

Raychat.openWidget()

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

کُپی کردن!

    window.Raychat.open();

Raychat.closeWidget()

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

کُپی کردن!

    winow.Raychat.close();

Raychat.toggle()

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

کُپی کردن!

    window.Raychat.toggle();

Raychat.animate()

شخصی سازی حالت انیمیشن آیکون ابزارک چت. این کار باعث می‌شود که توجه کاربر بیشتر به ابزارک جلب شده و در نتیجه احتمال اینکه کاربر سر صحبت را باز کند بیشتر خواهد شد.

ANIMATIONS
bounce
wobble
tada
shakeX
shakeY
headShake
rubberBand
swing
jello
rotateIn
pulse
heartBeat
flip

کُپی کردن!

    window.Raychat.animate('tada');

Raychat.isWidgetOpen()

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

RESULTANIMATIONS
trueباز است
falseبسته است

کُپی کردن!

    window.Raychat.isWidgetOpen();

رویداد ها

با استفاده از این رویداد ها می توانید نسبت به رفتار کاربر عکس العمل نشان دهید. به طور مثال وقتی کاربر ایمیلش رو در قسمت با خبر شو ثبت کرد یه پیامی بهش نشون بدید. این قسمت هم همیشه در حال بروزرسانی هست و با توجه به نیاز کاربران و درخواست ها امکانات و رویداد های جدید اضافه خواهد شد.

raychat_user_profile_updated

زمانی که اطلاعات کاربر بروز می‌شود این رویداد اجرا می‌شود به طور مثال زمانی که کاربر ایمیلش را در قسمت با خبرشو ثبت می کند.

کُپی کردن!

    window.Raychat.on('raychat_user_profile_updated', function (user) {
    });

open

زمانی که کاربر ابزارک چت را باز کند این رویداد اجرا می‌شود.

کُپی کردن!

    window.Raychat.on('open', function (s) {
    });

close

زمانی که کاربر ابزارک چت را ببندد این رویداد اجرا می‌شود.

کُپی کردن!

    window.Raychat.on('close', function (s) {
    });

raychat_new_user_loaded

این رویداد زمانی اجرا میشود که شما با استفاده از متد loadUser کاربری را بارگذاری کنید.

کُپی کردن!

    window.Raychat.on('raychat_new_user_loaded', function (s) {
    });

raychat_sendMessage

این رویداد زمانی اجرا میشود که کاربر یک پیام از ویجت ارسال کند

FIELDTYPEDESCRIPTION
typestringtext, image, audio, video, compress, file :نوع پیام
contentstringمحتوای پیام

کُپی کردن!

    window.Raychat.on('raychat_sendMessage', function (d) {
            // your code here:
            // const detail = d.detail
            // ..
    });

raychat_getMessage

FIELDTYPEDESCRIPTION
typestringtext, image, audio, video, compress, file :نوع پیام
contentstringمحتوای پیام

کُپی کردن!

    window.Raychat.on('raychat_getMessage', function (d) {
          // your code here:
          // const detail = d.detail
          // ..
    });