مستندات رایچت برای توسعه دهندگان
با استفاده از APIهای رایچت میتوانید سیستم یا وبسایت خود را بیشتر با رایچت هماهنگ کنید. مثلا میتوانید اطلاعات کاربران وب سایت خود را در پنل گفتگوی رایچت نمایش دهید. در ادامه Apiهایی که تا اکنون منتشر شدهاند را مشاهده میکنید. رایچت همیشه در حال بهروزرسانی هست پس منتظر API های جدید باشید :).
ایجاد وب سایت
با استفاده از این API میتوانید در رایچت ثبت نام کنید. این قسمت بیشتر برای سیستم های سایت ساز و فروشگاه ساز که قصد دارند به صورت اتوماتیک برای هر کاربری که در سیستمشون ثبت نام میکنه یک اکانت رایچت ایجاد کنند و کد را نیز در سایت قرار دهند کاربرد دارد.
* برای استفاده از این قسمت ابتدا یک اپ از طریق این لینک ایجاد کنید و کلید API خود را دریافت کنید.
ROUTE | METHOD |
---|---|
https://api.raychat.io/v1/api/site | POST |
مقادیر ارسالی
FIELD | TYPE | DESCRIPTION |
---|---|---|
apiKey | string | کلیدی که هنگام ایجاد اپلیکیشن در پنل دریافت کردید |
site | string | آدرس سایتی که میخواهید در رایچت ثبت کنید |
siteTitle | string | عنوان سایتی که میخواهید در رایچت ثبت کنید |
string | ایمیل مدیر وب سایت | |
password | string | رمز عبور |
name | string | نام مدیر وب سایت |
phone | string | تلفن مدیر وب سایت |
مقادیر برگشتی
FIELD | TYPE | DESCRIPTION |
---|---|---|
message | string | پیام برگشتی از سرور |
status | int | وضعیت |
code | string | کد رایچت برای قرار دادن در وب سایت |
user | object | اطلاعات کاربر ایجاد شده |
token | string | توکن وبسایت |
url | string | آدرس پنل مدیریت رایچت |
webAppUrl | string | آدرس اپلیکیشن تحت وب رایچت |
* پاسخ بصورت 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 سمت کاربر این امکان را به شما میدهد تا ابزارکی که برای کاربر نمایش داده میشود را مدیریت کنید. از آن میتوانید برای مدیریت صفحه چت و همچنین ارسال اطلاعات کاربر به اپلیکیشن رایچت استفاده کنید. (برای مثال میتوانید اطلاعات کاربری که به سایت شما لاگین کرده را به رایچت بفرستید تا در اپلیکیشن نمایش داده بشه و بعداً در آرشیو بهش دسترسی داشته باشید).
نکته: تمامی توابع و رویدادهایی که در ادامه توضیح داده خواهند شد باید طبق دستورالعمل داخل رویداد raychat_ready نوشته شوند.
کُپی کردن!
window.addEventListener('raychat_ready', function (ets) {
// function or event
});
Raychat.setStyle()
با استفاده ازاین تابع میتوانید تغییراتی بر روی ظاهر آیکون ابزارک چت رایچت ایجاد کنید.
FIELD | TYPE | DESCRIPTION |
---|---|---|
backgroundColor | string | رنگ پس زمینه آیکون ابزارک |
borderRadius | string | حالت لبهی آیکون ابزارک |
width | string | عرض آیکون ابزارک |
height | string | ارتفاع آیکون ابزارک |
boxShadow | string | افزودن افکت سایه به آیکون ابزارک |
کُپی کردن!
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" داشته باشند.
FIELD | TYPE | DESCRIPTION |
---|---|---|
top | string | فاصله از بالا |
right | string | فاصله از راست |
bottom | string | فاصله از پایین |
left | string | فاصله از چپ |
کُپی کردن!
window.Raychat.setPosition({
top: 'auto',
right : 'auto',
bottom : '15px',
left : '15px'
});
Raychat.setUser()
با استفاده از این تابع می توانید اطلاعات کاربری که به وب سایت شما لاگین کرده را به رایچت ارسال کنید.
FIELD | TYPE | DESCRIPTION |
---|---|---|
string | ایمیل کاربر لاگین شده | |
name | string | نام کاربر لاگین شده |
about | string | درباره ی کاربر لاگین شده |
phone | string | تلفن کاربر لاگین شده |
avatar | string | عکس کاربر لاگین شده |
updateOnce | boolean | در هر بار فراخوانی این تابع اطلاعات کاربر به روز شود یا خیر |
کُپی کردن!
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()
با استفاده از این تابع می توانید اطلاعات بازدیدکننده ای که در حال حاضر در وب سایت هست را دریافت کنید.
مقادیر برگشتی
KEY | VALUE TYPE | DESCRIPTION |
---|---|---|
id | string | آیدی کاربر |
name | string | نام کاربر |
string | ایمیل | |
avatar | string | عکس کاربر |
online | string | وضعیت کاربر |
createdAt | date | تاریخ ایجاد کاربر |
metadata | object | دادههای بیشتر |
browser | object | اطلاعات مرورگر کاربر |
phone | string | شماره تلفن کاربر |
about | string | اطلاعات کاربر |
کُپی کردن!
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 استفاده کنید
نکته: حتما توجه داشته باشید که با لود کردن کاربر جدید، اطلاعات کاربر فعلی (مکالمات و بقیه موارد) در صورتی که ای دی کاربر را در دیتابیسی ذخیره نداشته باشید برای همیشه غیرقابل دسترس خواهد بود.
FIELD | TYPE | DESCRIPTION |
---|---|---|
userId | string | ای دی کاربر |
کُپی کردن!
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()
با استفاده از این تابع میتوان تشخیص داد که ابزار چک باز است یا خیر.
RESULT | ANIMATIONS |
---|---|
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 رهگیری کنید
FIELD | TYPE | DESCRIPTION |
---|---|---|
inputs | array | .فیلدهای فرم موردنظر را این طریق این مقدار میتوانید مشخص کنید. جزئیات این فیلد در جدول دوم مشخص شده است |
message | string | پیامی که همراه با فرم نمایش داده میشود |
title | string | عنوان فرم |
notSendToServer | boolean | قرار دهید true درصورتی که نخواهید تا مقادیر دریافتی از کاربر در دیتابیس رایچت ذخیره شوند مقدار این فیلد را برابر |
disableChatbox | boolean | قرار دهید true تا زمان وارد کردن مقادیر توسط کاربر غیرفعال باشد میتوانید مقدار این فیلد را برابر chatbox درصورتی که بخواهید تا |
formName | string | نامی که برای فرم مشخص میشود |
جزئیات فیلد inputs
FIELD | TYPE | DESCRIPTION |
---|---|---|
label | string | برچسب یا توضیحات یک فیلد |
type | string | نوع فیلد ورودی |
کُپی کردن!
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
این رویداد پس از تایید فرم توسط بازدید کننده وبسایت شما اجرا میشود و یک آبجکت حاوی اطلاعاتی همچون نوع فرم و آرایه ای از اطلاعات وارد شده توسط بازدیدکننده به کال بک پاس داده میشود.
فرمت اطلاعات وارد شده در جدول زیر قابل مشاهده هستند
FIELD | TYPE | DESCRIPTION |
---|---|---|
id | number | موقعیت فیلد |
label | string | برچسب فیلد |
value | string | مقدار وارد شده |
type | string | نوع فیلد |
همچنین انواع فرم در جدول زیر آورده شده است. توجه کنید درصورتی که نام مشخصی در api برای فرم تعیین شود آن نام برمیگردد.
TYPE | DESCRIPTION |
---|---|
officeHours | فرم زمانهای کاری |
notOfficeHours | فرم زمانهای غیرکاری |
api | api فرم ایجاد شده توسط |
کُپی کردن!
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
این رویداد زمانی اجرا میشود که کاربر یک پیام از ویجت ارسال کند
FIELD | TYPE | DESCRIPTION |
---|---|---|
type | string | text, image, audio, video, compress, file :نوع پیام |
content | string | محتوای پیام |
کُپی کردن!
window.Raychat.on('raychat_sendMessage', function (d) {
// your code here:
// const detail = d.detail
// ..
});
raychat_getMessage
FIELD | TYPE | DESCRIPTION |
---|---|---|
type | string | text, image, audio, video, compress, file :نوع پیام |
content | string | محتوای پیام |
کُپی کردن!
window.Raychat.on('raychat_getMessage', function (d) {
// your code here:
// const detail = d.detail
// ..
});
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-->
زبان ویجت
با توجه به زبان مورد نظر برای ابزارک خود میتوانید از مقادیر زیر استفاده کرده و در کد نصب قرار دهید
LANG | VALUE | FIELD |
---|---|---|
Persian | fa | RAYCHAT_WIDGET_LANG |
English | en | RAYCHAT_WIDGET_LANG |
Arabic | ar | RAYCHAT_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 لود کنید
توجه کنید که اگر هیچ پارامتری در این قسمت مشخص نشود آنگاه ابزارک به صورت معمولی لود خواهد شد. در لود معمولی، ابزارک پس از لود همهی قسمتهای وبسایت شما لود خواهد شد.
TYPE | VALUE | FIELD | DESCRIPTION |
---|---|---|---|
Fast Load | FAST_LOAD | LOAD_TYPE | ابزارک همزمان با وبسایت شما لود میشود |
SEO Friendly | SEO_FRIENDLY | LOAD_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-->