Plugins › การแจ้งเตือน
เอกสาร/Plugins/การแจ้งเตือน

การแจ้งเตือน

สิ่งที่จะได้เรียนรู้

บอกผู้ดูแลเว็บในแชต Telegram เมื่อมีคนส่งฟอร์ม มีคำสั่งซื้อใหม่ หรือมีบางอย่างล้มเหลว

ก่อนหน้านี้: การเชื่อมต่อ

@easy-cms/plugin-notify ส่งข้อความสั้น ๆ ไปยังแชตสำหรับ event ที่ผู้ดูแลเลือก พร้อมลิงก์ไปยังหน้านั้นใน admin เริ่มจาก Telegram และออกแบบไว้ให้เพิ่มช่องทางอื่น (LINE, Slack, Discord) ได้ภายหลัง

npm
npm install @easy-cms/plugin-notify
pnpm
pnpm add @easy-cms/plugin-notify
yarn
yarn add @easy-cms/plugin-notify
bun
bun add @easy-cms/plugin-notify
import { notifyPlugin } from '@easy-cms/plugin-notify'
 
export default defineConfig({
  serverURL: 'https://example.com', // สำหรับลิงก์ไปยัง admin
  // …
  plugins: [notifyPlugin()],
})

plugin เพิ่ม collection notify-messages (คิวของมัน ไม่แสดงใน admin) และงานตั้งเวลาหนึ่งงาน ให้สร้าง migration (easy-cms migrate:create notify ดู Migrations) และต้องมีอะไรสักอย่างรันงานตั้งเวลา ไม่ว่าจะเป็นเซิร์ฟเวอร์หรือ cron (งานตั้งเวลา)

เชื่อม Telegram

  1. ใน Telegram คุยกับ @BotFather: /newbot แล้วคัดลอก token ที่ได้
  2. ส่งข้อความหาบอทใหม่ หรือเพิ่มบอทเข้ากลุ่มที่จะรับข้อความ
  3. ใน admin ไปที่ Settings → การเชื่อมต่อ → Telegram → เชื่อมบัญชี วาง Bot token กด ค้นหา Chat ID แล้วเลือกแชต
  4. เลือก ภาษา ของข้อความ (ถ้าว่าง: ภาษาของ admin) และ เหตุการณ์ (ถ้าไม่เลือก: ทั้งหมด) แล้ว บันทึก Easy CMS จะส่งข้อความทดสอบไปที่แชต และปุ่ม ทดสอบ ส่งอีกครั้งได้

เชื่อมได้หลายแชต (ทีมร้านค้าสำหรับคำสั่งซื้อ ทีมนักพัฒนาสำหรับข้อผิดพลาด) แต่ละแชตได้รับเฉพาะ event ที่ติ๊กไว้ TELEGRAM_BOT_TOKEN ใน environment จะใช้แทน token ที่กรอกใน admin

Event

Eventข้อความบอกอะไร
form.submittedชื่อฟอร์มและผู้ส่ง จากตัวสร้างฟอร์ม ไม่รวมคำตอบ เพราะอาจเป็นข้อมูลส่วนตัว ให้อ่านใน admin
order.createdเลขคำสั่งซื้อ ยอดรวม และอีเมล จากร้านค้า
scheduled.failedเอกสารที่เผยแพร่หรือเลิกเผยแพร่ตามเวลาไม่สำเร็จ และสาเหตุ
delivery.failedwebhook หรืออีเมลที่ส่งไม่สำเร็จหลังลองซ้ำครบแล้ว
backup.failedสาเหตุที่สำรองข้อมูลไม่สำเร็จ
integration.failedการเชื่อมต่อที่ใช้งานไม่ได้ (ไม่รวมช่องทางแจ้งเตือนเอง)

event เหล่านี้คือ event ข้อผิดพลาด ที่ webhook รับได้ด้วย

การส่ง

ข้อความส่งทันที ถ้าส่งไม่สำเร็จ งาน notify:send จะลองใหม่หลัง 1, 5 และ 30 นาที หลังจากนั้นจะเลิกส่ง และการเชื่อมต่อจะแสดงข้อผิดพลาดในหน้าการเชื่อมต่อและแดชบอร์ด token ผิดหรือแชตที่บอทออกไปแล้วจะไม่ลองซ้ำ

การเชื่อมต่อหนึ่งส่งได้ไม่เกิน 60 ข้อความต่อชั่วโมง (limit) ข้อความที่เกินจะถูกนับไว้ แล้วแชตจะได้ข้อความเดียว บอกจำนวน เมื่อชั่วโมงถัดไปเปิดให้ส่งได้ ข้อความที่ส่งแล้วเก็บไว้ 7 วัน

ตัวเลือก

ตัวเลือกค่าเริ่มต้น
channels[telegram]ช่องทางที่ส่งข้อความ
limit60จำนวนข้อความสูงสุดต่อชั่วโมงของการเชื่อมต่อหนึ่ง
slugnotify-messagescollection ของคิว

ขั้นต่อไป