สถานะ: ทดลอง การผสานการทำงานนี้ทำให้ บัญชี Zalo ส่วนตัว ทำงานอัตโนมัติผ่านDocumentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
zca-js แบบเนทีฟภายใน OpenClaw
Plugin ที่รวมมาให้
Zalo Personal จัดส่งเป็น Plugin ที่รวมมาให้ใน OpenClaw รุ่นปัจจุบัน ดังนั้นบิลด์แบบแพ็กเกจปกติ จึงไม่ต้องติดตั้งแยกต่างหาก หากคุณใช้บิลด์เก่ากว่าหรือการติดตั้งแบบกำหนดเองที่ไม่รวม Zalo Personal ให้ติดตั้งแพ็กเกจ npm โดยตรง:- ติดตั้งผ่าน CLI:
openclaw plugins install @openclaw/zalouser - เวอร์ชันที่ปักหมุด:
openclaw plugins install @openclaw/zalouser@2026.5.2 - หรือจากซอร์สที่เช็กเอาต์ไว้:
openclaw plugins install ./path/to/local/zalouser-plugin - รายละเอียด: Plugin
zca/openzca
การตั้งค่าอย่างรวดเร็ว (ผู้เริ่มต้น)
- ตรวจสอบให้แน่ใจว่า Plugin Zalo Personal พร้อมใช้งาน
- OpenClaw รุ่นแพ็กเกจปัจจุบันรวมไว้แล้ว
- การติดตั้งเก่ากว่า/แบบกำหนดเองสามารถเพิ่มเองได้ด้วยคำสั่งด้านบน
- เข้าสู่ระบบ (QR บนเครื่อง Gateway):
openclaw channels login --channel zalouser- สแกนโค้ด QR ด้วยแอปมือถือ Zalo
- เปิดใช้งานช่องทาง:
- รีสตาร์ต Gateway (หรือทำการตั้งค่าให้เสร็จ)
- ค่าเริ่มต้นของการเข้าถึงข้อความโดยตรงคือการจับคู่ อนุมัติรหัสจับคู่เมื่อมีการติดต่อครั้งแรก
คืออะไร
- ทำงานทั้งหมดในโปรเซสผ่าน
zca-js - ใช้ตัวรับฟังเหตุการณ์แบบเนทีฟเพื่อรับข้อความขาเข้า
- ส่งคำตอบโดยตรงผ่าน JS API (ข้อความ/สื่อ/ลิงก์)
- ออกแบบมาสำหรับกรณีใช้งานแบบ “บัญชีส่วนตัว” ที่ Zalo Bot API ไม่พร้อมใช้งาน
การตั้งชื่อ
รหัสช่องทางคือzalouser เพื่อระบุอย่างชัดเจนว่านี่ทำให้ บัญชีผู้ใช้ Zalo ส่วนตัว ทำงานอัตโนมัติ (ไม่เป็นทางการ) เราสงวน zalo ไว้สำหรับการผสานการทำงานกับ Zalo API อย่างเป็นทางการที่อาจมีในอนาคต
การค้นหา ID (ไดเรกทอรี)
ใช้ CLI ไดเรกทอรีเพื่อค้นหาเพียร์/กลุ่มและ ID ของรายการเหล่านั้น:ข้อจำกัด
- ข้อความขาออกจะถูกแบ่งเป็นส่วนละประมาณ 2000 อักขระ (ข้อจำกัดของไคลเอนต์ Zalo)
- การสตรีมถูกบล็อกตามค่าเริ่มต้น
การควบคุมการเข้าถึง (ข้อความโดยตรง)
channels.zalouser.dmPolicy รองรับ: pairing | allowlist | open | disabled (ค่าเริ่มต้น: pairing)
channels.zalouser.allowFrom ควรใช้ ID ผู้ใช้ Zalo ที่เสถียร และยังสามารถอ้างอิงกลุ่มการเข้าถึงผู้ส่งแบบคงที่ได้ด้วย (accessGroup:<name>) ระหว่างการตั้งค่าแบบโต้ตอบ ชื่อที่ป้อนสามารถถูกแก้ไขเป็น ID ได้โดยใช้การค้นหารายชื่อติดต่อในโปรเซสของ Plugin
หากชื่อดิบยังคงอยู่ในคอนฟิก การเริ่มต้นระบบจะแก้ไขชื่อนั้นก็ต่อเมื่อเปิดใช้งาน channels.zalouser.dangerouslyAllowNameMatching: true หากไม่ได้เลือกใช้อย่างชัดเจน การตรวจสอบผู้ส่งขณะรันไทม์จะใช้เฉพาะ ID และชื่อดิบจะถูกละเว้นสำหรับการอนุญาต
อนุมัติผ่าน:
openclaw pairing list zalouseropenclaw pairing approve zalouser <code>
การเข้าถึงกลุ่ม (ไม่บังคับ)
- ค่าเริ่มต้น:
channels.zalouser.groupPolicy = "open"(อนุญาตกลุ่ม) ใช้channels.defaults.groupPolicyเพื่อแทนที่ค่าเริ่มต้นเมื่อไม่ได้ตั้งค่า - จำกัดเป็นรายการที่อนุญาตด้วย:
channels.zalouser.groupPolicy = "allowlist"channels.zalouser.groups(คีย์ควรเป็น ID กลุ่มที่เสถียร ชื่อจะถูกแก้ไขเป็น ID เมื่อเริ่มต้นระบบเท่านั้นเมื่อเปิดใช้งานchannels.zalouser.dangerouslyAllowNameMatching: true)channels.zalouser.groupAllowFrom(ควบคุมว่าผู้ส่งรายใดในกลุ่มที่อนุญาตสามารถเรียกบอตได้ กลุ่มการเข้าถึงผู้ส่งแบบคงที่สามารถอ้างอิงด้วยaccessGroup:<name>)
- บล็อกทุกกลุ่ม:
channels.zalouser.groupPolicy = "disabled" - วิซาร์ดกำหนดค่าสามารถถามรายการกลุ่มที่อนุญาตได้
- เมื่อเริ่มต้นระบบ OpenClaw จะแก้ไขชื่อกลุ่ม/ผู้ใช้ในรายการที่อนุญาตให้เป็น ID และบันทึกการแมปเฉพาะเมื่อเปิดใช้งาน
channels.zalouser.dangerouslyAllowNameMatching: true - การจับคู่รายการกลุ่มที่อนุญาตใช้เฉพาะ ID ตามค่าเริ่มต้น ชื่อที่แก้ไขไม่ได้จะถูกละเว้นสำหรับการยืนยันสิทธิ์ เว้นแต่จะเปิดใช้งาน
channels.zalouser.dangerouslyAllowNameMatching: true channels.zalouser.dangerouslyAllowNameMatching: trueเป็นโหมดความเข้ากันได้สำหรับกรณีฉุกเฉินที่เปิดใช้การแก้ไขชื่อเมื่อเริ่มต้นระบบที่เปลี่ยนแปลงได้และการจับคู่ชื่อกลุ่มขณะรันไทม์อีกครั้ง- หากไม่ได้ตั้งค่า
groupAllowFromรันไทม์จะถอยกลับไปใช้allowFromสำหรับการตรวจสอบผู้ส่งในกลุ่ม - การตรวจสอบผู้ส่งใช้กับทั้งข้อความกลุ่มปกติและคำสั่งควบคุม (เช่น
/new,/reset)
การกั้นด้วยการกล่าวถึงในกลุ่ม
channels.zalouser.groups.<group>.requireMentionควบคุมว่าการตอบกลับในกลุ่มต้องมีการกล่าวถึงหรือไม่- ลำดับการแก้ไข: ID/ชื่อกลุ่มตรงกันแบบเป๊ะ -> slug กลุ่มที่ปรับให้เป็นมาตรฐาน ->
*-> ค่าเริ่มต้น (true) - ใช้กับทั้งกลุ่มในรายการที่อนุญาตและโหมดกลุ่มแบบเปิด
- การอ้างข้อความของบอตนับเป็นการกล่าวถึงโดยนัยสำหรับการเปิดใช้งานกลุ่ม
- คำสั่งควบคุมที่ได้รับอนุญาต (เช่น
/new) สามารถข้ามการกั้นด้วยการกล่าวถึงได้ - เมื่อข้อความกลุ่มถูกข้ามเพราะต้องมีการกล่าวถึง OpenClaw จะจัดเก็บไว้เป็นประวัติกลุ่มที่รอดำเนินการ และรวมไว้ในข้อความกลุ่มถัดไปที่ถูกประมวลผล
- ค่าเริ่มต้นของขีดจำกัดประวัติกลุ่มคือ
messages.groupChat.historyLimit(ค่าถอยกลับ50) คุณสามารถแทนที่เป็นรายบัญชีด้วยchannels.zalouser.historyLimit
หลายบัญชี
บัญชีจะถูกแมปกับโปรไฟล์zalouser ในสถานะของ OpenClaw ตัวอย่าง:
การพิมพ์ การโต้ตอบ และการรับทราบการส่งมอบ
- OpenClaw ส่งเหตุการณ์การพิมพ์ก่อนส่งคำตอบ (พยายามอย่างดีที่สุด)
- รองรับการกระทำโต้ตอบข้อความ
reactสำหรับzalouserในการกระทำของช่องทาง- ใช้
remove: trueเพื่อลบอีโมจิการโต้ตอบที่ระบุออกจากข้อความ - ความหมายของการโต้ตอบ: การโต้ตอบ
- ใช้
- สำหรับข้อความขาเข้าที่มีเมทาดาทาเหตุการณ์ OpenClaw จะส่งการรับทราบว่าส่งถึงแล้ว + เห็นแล้ว (พยายามอย่างดีที่สุด)
การแก้ไขปัญหา
เข้าสู่ระบบแล้วสถานะไม่คงอยู่:openclaw channels status --probe- เข้าสู่ระบบใหม่:
openclaw channels logout --channel zalouser && openclaw channels login --channel zalouser
- ใช้ ID ตัวเลขใน
allowFrom/groupAllowFromและ ID กลุ่มที่เสถียรในgroupsหากคุณตั้งใจต้องใช้ชื่อเพื่อน/กลุ่มที่ตรงกันแบบเป๊ะ ให้เปิดใช้งานchannels.zalouser.dangerouslyAllowNameMatching: true
- ลบสมมติฐานเดิมเกี่ยวกับโปรเซส
zcaภายนอกออก - ตอนนี้ช่องทางทำงานทั้งหมดใน OpenClaw โดยไม่มีไบนารี CLI ภายนอก
ที่เกี่ยวข้อง
- ภาพรวมช่องทาง — ช่องทางทั้งหมดที่รองรับ
- การจับคู่ — การยืนยันตัวตนข้อความโดยตรงและโฟลว์การจับคู่
- กลุ่ม — พฤติกรรมแชตกลุ่มและการกั้นด้วยการกล่าวถึง
- การกำหนดเส้นทางช่องทาง — การกำหนดเส้นทางเซสชันสำหรับข้อความ
- ความปลอดภัย — โมเดลการเข้าถึงและการเสริมความแข็งแกร่ง