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) {
    });

SendForm event

با استفاده از این متد میتوانید فرم مورد نظر خود را با استفاده از API نمایش دهید. همچنین میتوانید مقادیر وارد شده توسط کاربر وبسایت خود را با استفاده از ایونت raychat_form_submission رهگیری کنید

FIELDTYPEDESCRIPTION
inputsarray.فیلدهای فرم موردنظر را این طریق این مقدار میتوانید مشخص کنید. جزئیات این فیلد در جدول دوم مشخص شده است
messagestringپیامی که همراه با فرم نمایش داده میشود
titlestringعنوان فرم
notSendToServerbooleanقرار دهید true درصورتی که نخواهید تا مقادیر دریافتی از کاربر در دیتابیس رایچت ذخیره شوند مقدار این فیلد را برابر
disableChatboxbooleanقرار دهید true تا زمان وارد کردن مقادیر توسط کاربر غیرفعال باشد میتوانید مقدار این فیلد را برابر chatbox درصورتی که بخواهید تا
formNamestringنامی که برای فرم مشخص میشود

جزئیات فیلد inputs

FIELDTYPEDESCRIPTION
labelstringبرچسب یا توضیحات یک فیلد
typestringنوع فیلد ورودی

کُپی کردن!

    window.Raychat.sendForm({
          // type can be number, phone, email, name and string (custom fields)
          inputs: [
            {
                "label": "سن",
                "type": "number"
            },
            {
                "label": "تلفن",
                "type": "phone"
            },
            {
              "label": "ایمیل",
              "type": "email"
            },
            {
              "label": "فیلد دلخواه",
              "type": "string"
            }
        ],
            message: "اطلاعات را وارد کنید",
            title: "عنوان فرم",
            notSendToServer: false,
            disableChatbox: false,
            formName: "customForm"
        })

Raychat form submission event

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

فرمت اطلاعات وارد شده در جدول زیر قابل مشاهده هستند

FIELDTYPEDESCRIPTION
idnumberموقعیت فیلد
labelstringبرچسب فیلد
valuestringمقدار وارد شده
typestringنوع فیلد

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

TYPEDESCRIPTION
officeHoursفرم زمان‌های کاری
notOfficeHoursفرم زمان‌های غیرکاری
apiapi فرم ایجاد شده توسط

کُپی کردن!


        window.Raychat.on('raychat_form_submission', function ({detail}) {
          // officeHours, notOfficeHours, api
          const formName = detail.formName;
          const inputValues = detail.values;
        });
        

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
          // ..
    });
API Icon

Tag Manager رویداد های مورد استفاده در سرویس

رایچت با در اختیار گذاشتن event های گوناگون به شما این امکان را میدهد تا بتوانید تمامی رفتار های ابزارک را دریافت کنید و در صورت لزوم آنرا با توجه به نیاز کسب و کار خود به سرویس های جانبی دیگر ارسال کنید. در این قسمت نمونه های دریافت و ارسال داده‌ها به سرویس Google Tag Manager را مشاهده میکنید. اطلاعات بیشتر

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

کُپی کردن!

    window.addEventListener('raychat_ready', function (ets) {
            window.Raychat.on("close", function () { 
              window.dataLayer = window.dataLayer || []; 
              window.dataLayer.push({ 
                  'event': 'raychat_close', 
                  // other options
              }); 
          }); 
    });

ردیابی ایونت باز کردن ابزارک در تگ منیجر

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

کُپی کردن!


        <!-- Event listener for Raychat widget's open event --> 
        <script> 
          window.Raychat.on("open", function () { 
              window.dataLayer = window.dataLayer || []; 
              window.dataLayer.push({ 
                  'event': 'raychat_open', 
                  // other options
              }); 
          }); 
        </script> 
        

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

با کد زیر میتوانید دفعات بستن ابزارک را در وبسایت خود رهگیری کنید

کُپی کردن!


        <!-- Event listener for Raychat widget's close event --> 
        <script> 
          window.Raychat.on("close", function () { 
              window.dataLayer = window.dataLayer || []; 
              window.dataLayer.push({ 
                  'event': 'raychat_close', 
                  // other options
              }); 
          }); 
        </script> 
        

ردیابی ایونت ارسال پیام توسط یوزر

با کد زیر میتوانید ارسال پیام را در وبسایت خود رهگیری کنید

کُپی کردن!

 
        <!-- Event listener for Raychat widget's send message event --> 
        <script> 
          window.Raychat.on("raychat_sendMessage", function (d) { 
              window.dataLayer = window.dataLayer || []; 
              window.dataLayer.push({ 
                  'event': 'raychat_sendMessage', 
                  // other options
              }); 
          }); 
        </script> 
        

ردیابی ایونت دریافت پیام در تگ منیجر

با کد زیر میتوانید دریافت پیام را رهگیری کنید

کُپی کردن!


        <!-- Event listener for Raychat widget's get message event --> 
        <script> 
          window.Raychat.on("raychat_getMessage", function (d) { 
              window.dataLayer = window.dataLayer || []; 
              window.dataLayer.push({ 
                  'event': 'raychat_getMessage', 
                  // other options
              }); 
          }); 
        </script> 
        

پارامترهای نصب ویجت

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

نکته: توجه کنید که در همه‌ی کدهای نمونه که در ادامه می‌آیند به جای YOUR_WIDGET_TOKEN باید توکنی را که از قسمت نصب و راه اندازی داشبورد دریافت میکنید قرار دهید

کُپی کردن!


        <!--BEGIN OF RAYCHAT CODE-->
        <script type="text/javascript">
            window.RAYCHAT_TOKEN = "YOUR_WIDGET_TOKEN";
            (function () {
                d = document;
                s = d.createElement("script");
                s.src = "https://widget-react.raychat.io/install/widget.js";
                s.async = 1;
                d.getElementsByTagName("head")[0].appendChild(s);
            })();
        </script>
        <!--END OF RAYCHAT CODE--> 
        

زبان ویجت

با توجه به زبان مورد نظر برای ابزارک خود میتوانید از مقادیر زیر استفاده کرده و در کد نصب قرار دهید

LANGVALUEFIELD
PersianfaRAYCHAT_WIDGET_LANG
EnglishenRAYCHAT_WIDGET_LANG
ArabicarRAYCHAT_WIDGET_LANG

کُپی کردن!


        <!--BEGIN OF RAYCHAT CODE-->
        <script type="text/javascript">
          window.RAYCHAT_TOKEN = "YOUR_WIDGET_TOKEN";
          window.RAYCHAT_WIDGET_LANG ="en";
            (function () {
                d = document;
                s = d.createElement("script");
                s.src = "https://widget-react.raychat.io/install/widget.js";
                s.async = 1;
                d.getElementsByTagName("head")[0].appendChild(s);
            })();
        </script>
        <!--END OF RAYCHAT CODE--> 
        

نوع لود ویجت

با استفاده از پارامترهای زیر میتوانید کد خود را به سریعتر و یا متناسب‌تر با SEO لود کنید

توجه کنید که اگر هیچ پارامتری در این قسمت مشخص نشود آنگاه ابزارک به صورت معمولی لود خواهد شد. در لود معمولی، ابزارک پس از لود همه‌ی قسمت‌های وبسایت شما لود خواهد شد.

TYPEVALUEFIELDDESCRIPTION
Fast LoadFAST_LOADLOAD_TYPEابزارک همزمان با وبسایت شما لود میشود
SEO FriendlySEO_FRIENDLYLOAD_TYPEبرای جلوگیری از تشخیص ابزارک توسط ربات‌های سئوی گوگل و تاثیر آن روی سئوی وبسایت شما، ابزارک پس از تعامل کاربر لود خواهد شد

کُپی کردن!


        <!--BEGIN OF RAYCHAT CODE-->
        <script type="text/javascript">
          window.RAYCHAT_TOKEN = "YOUR_WIDGET_TOKEN";
          window.LOAD_TYPE = "SEO_FRIENDLY";
            (function () {
                d = document;
                s = d.createElement("script");
                s.src = "https://widget-react.raychat.io/install/widget.js";
                s.async = 1;
                d.getElementsByTagName("head")[0].appendChild(s);
            })();
        </script> 
        <!--END OF RAYCHAT CODE-->
        

نصب ابزارک بر روی انواع فریم‌ورک‌ها

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

نکته: توجه کنید که در همه‌ی کدهای نمونه که در ادامه می‌آیند به جای YOUR_WIDGET_TOKEN باید توکنی را که از قسمت نصب و راه اندازی داشبورد دریافت میکنید قرار دهید

کُپی کردن!


        <!--BEGIN OF RAYCHAT CODE-->
        <script type="text/javascript">
          window.RAYCHAT_TOKEN = "YOUR_WIDGET_TOKEN";
            (function () {
                d = document;
                s = d.createElement("script");
                s.src = "https://widget-react.raychat.io/install/widget.js";
                s.async = 1;
                d.getElementsByTagName("head")[0].appendChild(s);
            })();
        </script> 
        <!--END OF RAYCHAT CODE-->
        

React.js نصب ابزارک بر روی فریم‌ورک

برای نصب رایچت بر روی فریم‌ورک React.js میتوانید کد نصب را در فایل index.html درون پوشه public و پیش از پایان تگ head قرار دهید

کُپی کردن!


        <!--BEGIN OF RAYCHAT CODE-->
        <script type="text/javascript">
          window.RAYCHAT_TOKEN = "YOUR_WIDGET_TOKEN";
            (function () {
                d = document;
                s = d.createElement("script");
                s.src = "https://widget-react.raychat.io/install/widget.js";
                s.async = 1;
                d.getElementsByTagName("head")[0].appendChild(s);
            })();
        </script> 
        <!--END OF RAYCHAT CODE-->
        

Next.js نصب ابزارک بر روی فریم‌ورک

برای نصب ابزارک بر روی فریم‌ورک next.js میتوانید کد نصب را به صورت زیر در فایل app.js_ برنامه خود قرار دهید:

کُپی کردن!


        <Script
          id="raychat-widget"
          strategy="afterInteractive"
          dangerouslySetInnerHTML={{
            __html: "
                window.RAYCHAT_TOKEN = "YOUR_WIDGET_TOKEN";
                (function () {
                    const d = document;
                    const s = d.createElement("script");
                    s.src = "https://widget-react.raychat.io/install/widget.js";
                    s.async = true;
                    d.getElementsByTagName("head")[0].appendChild(s);
              
                })();",
          }}
        />
        

Vue.js نصب ابزارک بر روی فریم‌ورک

برای نصب رایچت بر روی فریم‌ورک Vue.js میتوانید کد نصب را در فایل index.html درون پوشه public و پیش از پایان تگ head قرار دهید

کُپی کردن!


        <!--BEGIN OF RAYCHAT CODE-->
        <script type="text/javascript">
        window.RAYCHAT_TOKEN = "YOUR_WIDGET_TOKEN";
          (function () {
              d = document;
              s = d.createElement("script");
              s.src = "https://widget-react.raychat.io/install/widget.js";
              s.async = 1;
              d.getElementsByTagName("head")[0].appendChild(s);
          })();
        </script> 
        <!--END OF RAYCHAT CODE-->
        

AngularJS نصب ابزارک بر روی فریم‌ورک

برای نصب رایچت بر روی فریم‌ورک AngularJS میتوانید کد نصب را در فایل index.html درون پوشه src و پیش از پایان تگ head قرار دهید

کُپی کردن!


        <!--BEGIN OF RAYCHAT CODE-->
        <script type="text/javascript">
          window.RAYCHAT_TOKEN = "YOUR_WIDGET_TOKEN";
            (function () {
                d = document;
                s = d.createElement("script");
                s.src = "https://widget-react.raychat.io/install/widget.js";
                s.async = 1;
                d.getElementsByTagName("head")[0].appendChild(s);
            })();
        </script> 
        <!--END OF RAYCHAT CODE-->