การสื่อสารแบบโต้ตอบทันทีเป็นสิ่งสำคัญสำหรับประสบการณ์การใช้งานที่น่าพอใจ นี่คือเหตุผลที่หลายบริษัทมีวิดเจ็ตแชทสดบนเว็บไซต์
มันคืออะไร
นี่คือวิดเจ็ตช่องแชท ควบคู่ไปกับแผงแชทของผู้ดูแลระบบสำหรับเว็บไซต์ เชื่อมต่อผู้ใช้กับนักพัฒนา/ผู้ดูแลระบบ ด้วยวิธีนี้ สามารถสร้างการสื่อสารแบบโต้ตอบระหว่างเพื่อนร่วมงานได้
โปรเจ็กต์นี้ใช้ Next.js ควบคู่ไปกับ Upstash Redis สำหรับการจัดเก็บ
ผู้ใช้เริ่มการสนทนา
การแจ้งเตือนสำหรับการแชทที่เริ่มต้นใหม่ไปที่ Slack
แอดมินตอบได้
คุณสามารถดูการสาธิตได้ที่นี่
โปรดสังเกตว่า ID แชทจะแสดงในคอนโซล สังเกตว่าและไปที่ /chat/{id}
เพื่อดูแผงการดูแลระบบและวิธีที่อินเทอร์เฟซทั้งสองโต้ตอบกัน
1. สร้างฐานข้อมูลและตัวแปรสภาพแวดล้อม
ข้อมูลจะถูกเก็บไว้ที่ Upstash Redis
สร้างฐานข้อมูล Redis ฟรีที่ Upstash Console
คัดลอก .env.local.example
ไฟล์ไปที่ .env.local
(ซึ่งจะถูกละเว้นโดยGit):
cp .env.local.example .env.local
UPSTASH_REDIS_REST_URL
และUPSTASH_REDIS_REST_TOKEN
สามารถพบได้ที่หน้ารายละเอียดฐานข้อมูลใน Upstash ConsoleSLACK_WEBHOOK_URL
สามารถพบได้ที่หน้าการรวม Slack ใน https://api.slack.com/messaging/webhooks
2. ติดตั้งแพ็คเกจ
yarn add @upstash/chatbox
3. นำเข้า CSS และวิดเจ็ต
// pages/_app.js
import "@upstash/chatbox/index.css";
import dynamic from "next/dynamic";
const ChatBoxWidget = dynamic({
loader: () => import("@upstash/chatbox").then((mod) => mod.ChatBoxWidget),
ssr: false,
});
export default function MyApp({ Component, pageProps }) {
return (
<>
<ChatBoxWidget />
<Component {...pageProps} />
</>
);
}
ตัวเลือกสามารถส่งผ่านเป็น React props
คีย์ | ประเภท | ค่าเริ่มต้น |
---|---|---|
themeColor? | string | #2d00c6 |
textColor? | string | #fff |
title? | string | สวัสดีครับ 👋 |
description? | string | ถามอะไรเราได้เลย หรือแบ่งปันความคิดเห็นของคุณ |
showOnInitial? | boolean | เท็จ |
customIcon? | React.ReactElement |
4. แดชบอร์ดผู้ดูแลระบบ
// pages/chat/[id].js
import dynamic from "next/dynamic";
const ChatBoxAdmin = dynamic({
loader: () => import("@upstash/chatbox").then((mod) => mod.ChatBoxAdmin),
ssr: false,
});
export default function () {
return <ChatBoxAdmin />;
}
5. สร้าง API
// pages/api/chatbox/[...chatbox].js
import createChatBoxAPI from "@upstash/chatbox/api";
const ChatBoxAPI = createChatBoxAPI({
webhooks: [process.env.SLACK_WEBHOOK_URL],
});
export default ChatBoxAPI;
ยินดีด้วย!
ตอนนี้คุณมีกล่องแชทสำหรับผู้ใช้แล้ว! สนุก!
คุณสามารถดูซอร์สโค้ดได้ที่นี่และแพ็กเกจ npm ที่นี่
เกี่ยวกับโครงการนี้หรือโดยทั่วไป เราขอขอบคุณสำหรับคำติชมและแนวคิดของคุณ หากคุณต้องการแสดงความคิดเห็นเกี่ยวกับบริการของเรา คุณสามารถทำได้ผ่าน Twitter หรือ Discord