ในหน้านี้
ในหน้านี้
Developer and self-hosted
Twitch
รองรับแชต Twitch ผ่านอินเทอร์เฟซแชต (IRC) ของ Twitch โดยใช้ไคลเอนต์ Twurple โดย OpenClaw จะลงชื่อเข้าใช้ด้วยบัญชีบอต Twitch เข้าร่วมหนึ่งช่องต่อหนึ่งบัญชีที่กำหนดค่า และตอบกลับในช่องนั้น
การติดตั้ง
Twitch จัดส่งในรูปแบบ Plugin อย่างเป็นทางการ โดยไม่ได้เป็นส่วนหนึ่งของการติดตั้งแกนหลัก
รีจิสทรี npm
เช็กเอาต์ในเครื่อง
plugins install จะลงทะเบียนและเปิดใช้งาน Plugin การเลือก Twitch ระหว่าง openclaw onboard หรือ openclaw channels add จะติดตั้ง Plugin เมื่อต้องการ ใช้ชื่อแพ็กเกจเปล่าเพื่อติดตามรุ่นปัจจุบัน และตรึงเวอร์ชันแบบเจาะจงเฉพาะเมื่อต้องการให้การติดตั้งทำซ้ำได้อย่างแน่นอน ต้องใช้ OpenClaw 2026.4.10 หรือใหม่กว่า
รายละเอียด: Plugin
การตั้งค่าด่วน
ติดตั้ง Plugin
ดูการติดตั้งด้านบน
สร้างบัญชีบอต Twitch
สร้างบัญชี Twitch แยกสำหรับบอตโดยเฉพาะ (หรือใช้บัญชีที่มีอยู่)
สร้างข้อมูลรับรอง
- เลือก Bot Token
- ตรวจสอบว่าได้เลือกขอบเขต
chat:readและchat:write - คัดลอก Client ID และ Access Token
ค้นหา ID ผู้ใช้ Twitch
ใช้ https://www.streamweasels.com/tools/convert-twitch-username-to-user-id/ เพื่อแปลงชื่อผู้ใช้เป็น ID ผู้ใช้ Twitch
กำหนดค่าโทเค็น
- สภาพแวดล้อม:
OPENCLAW_TWITCH_ACCESS_TOKEN=...(เฉพาะบัญชีเริ่มต้น) - หรือการกำหนดค่า:
channels.twitch.accessToken
หากตั้งค่าทั้งสองอย่าง การกำหนดค่าจะมีลำดับความสำคัญสูงกว่า (ตัวแปรสภาพแวดล้อมเป็นเพียงทางเลือกสำรองสำหรับบัญชีเริ่มต้น)
เริ่ม Gateway
การกำหนดค่าขั้นต่ำ:
คืออะไร
- ช่อง Twitch ที่ Gateway เป็นเจ้าของ
- การกำหนดเส้นทางแบบตายตัว: การตอบกลับจะส่งกลับไปยังช่อง Twitch ที่เป็นต้นทางของข้อความเสมอ
- แต่ละช่องที่เข้าร่วมจะจับคู่กับคีย์เซสชันกลุ่มที่แยกจากกัน
agent:<agentId>:twitch:group:<channel> usernameคือบัญชีของบอต (บัญชีที่ใช้ยืนยันตัวตน) ส่วนchannelคือห้องแชตที่จะเข้าร่วม รายการบัญชีหนึ่งรายการจะเข้าร่วมเพียงหนึ่งช่องเท่านั้น- โทเค็นใช้ได้ทั้งแบบมีและไม่มีคำนำหน้า
oauth:; OpenClaw จะปรับให้เป็นรูปแบบมาตรฐานได้ทั้งสองแบบ (ตัวช่วยตั้งค่าคาดหวังรูปแบบoauth:)
ความทนทานของข้อความขาเข้า
OpenClaw จะจัดคิวข้อความแชต Twitch ที่ยอมรับแต่ละข้อความแบบคงทนก่อนส่งต่อไปยังกระบวนการปกติ ข้อความที่รอดำเนินการหรือสามารถลองใหม่ได้จะยังคงอยู่หลัง Gateway รีสตาร์ต ประมวลผลตามลำดับสำหรับช่องที่กำหนดค่า และใช้ ID ข้อความของ Twitch เพื่อระงับรายการคิวซ้ำตราบใดที่ยังมีระเบียนการดำเนินการเสร็จสมบูรณ์ที่กำลังใช้งานหรือเก็บรักษาอยู่
แชต Twitch จะไม่เล่น PRIVMSG ซ้ำหลังจากไคลเอนต์ยอมรับแล้ว วิธีนี้ช่วยป้องกันช่วงที่ระบบอาจล่มระหว่างการยอมรับในเครื่องกับการส่งต่อ แต่ไม่สามารถกู้คืนข้อความที่พลาดไปก่อนการรับเข้าแบบคงทน หากการเพิ่มลงในคิวล้มเหลว OpenClaw จะบันทึกความล้มเหลว การเชื่อมต่อใหม่จะไม่ขอให้ Twitch ส่งข้อความนั้นอีกครั้ง
การรีเฟรชโทเค็น (ไม่บังคับ)
OpenClaw ไม่สามารถรีเฟรชโทเค็นจาก Twitch Token Generator ได้ ให้สร้างใหม่เมื่อหมดอายุ (โทเค็นมีอายุไม่กี่ชั่วโมงและไม่ต้องลงทะเบียนแอป)
สำหรับการรีเฟรชอัตโนมัติ ให้สร้างแอปของคุณเองที่ Twitch Developer Console และเพิ่ม:
เมื่อตั้งค่าทั้งสองอย่าง Plugin จะใช้ผู้ให้บริการการยืนยันตัวตนที่รองรับการรีเฟรช ซึ่งจะต่ออายุโทเค็นก่อนหมดอายุและบันทึกการรีเฟรชแต่ละครั้ง หากไม่มี refreshToken ระบบจะบันทึก token refresh disabled (no refresh token); หากไม่มี clientSecret ระบบจะกลับไปใช้โทเค็นแบบคงที่ (ไม่รีเฟรช)
การรองรับหลายบัญชี
ใช้ channels.twitch.accounts พร้อมข้อมูลรับรองแยกสำหรับแต่ละบัญชี ดูรูปแบบที่ใช้ร่วมกันได้ที่การกำหนดค่า
ตัวอย่าง (บัญชีบอตหนึ่งบัญชีในสองช่อง):
การควบคุมการเข้าถึง
allowFrom คือรายการอนุญาตแบบตายตัวของ ID ผู้ใช้ Twitch เมื่อตั้งค่านี้ ระบบจะไม่สนใจ allowedRoles; หากต้องการใช้การเข้าถึงตามบทบาทแทน ให้ไม่ต้องตั้งค่า allowFrom
บทบาทที่ใช้ได้: "moderator", "owner", "vip", "subscriber", "all"
รายการอนุญาต ID ผู้ใช้ (ปลอดภัยที่สุด)
ตามบทบาท
ปิดข้อกำหนดให้ @mention
โดยค่าเริ่มต้น requireMention คือ true หากต้องการตอบกลับข้อความที่ได้รับอนุญาตทั้งหมด:
การแก้ไขปัญหา
ขั้นแรก ให้เรียกใช้คำสั่งวินิจฉัย:
บอตไม่ตอบกลับข้อความ
- ตรวจสอบการควบคุมการเข้าถึง: ตรวจสอบว่า ID ผู้ใช้ของคุณอยู่ใน
allowFromหรือลบallowFromชั่วคราวและตั้งค่าallowedRoles: ["all"]เพื่อทดสอบ - ตรวจสอบด่านการกล่าวถึง: เมื่อใช้
requireMention: true(ค่าเริ่มต้น) ข้อความต้อง @mention ชื่อผู้ใช้ของบอต - ตรวจสอบว่าบอตอยู่ในช่อง: บอตจะเข้าร่วมเฉพาะช่องที่ระบุใน
channel
ปัญหาเกี่ยวกับโทเค็น
ข้อผิดพลาด "Failed to connect" หรือข้อผิดพลาดในการยืนยันตัวตน:
- ตรวจสอบว่า
accessTokenเป็นค่าโทเค็นการเข้าถึง OAuth (คำนำหน้าoauth:ไม่บังคับ) - ตรวจสอบว่าโทเค็นมีขอบเขต
chat:readและchat:write - หากใช้การรีเฟรชโทเค็น ให้ตรวจสอบว่าได้ตั้งค่า
clientSecretและrefreshToken
การรีเฟรชโทเค็นไม่ทำงาน
ตรวจสอบบันทึกเพื่อหาเหตุการณ์การรีเฟรช:
หากพบ token refresh disabled (no refresh token):
- ตรวจสอบว่าได้ระบุ
clientSecret - ตรวจสอบว่าได้ระบุ
refreshToken
การกำหนดค่า
การกำหนดค่าบัญชี
usernamestringrequiredชื่อผู้ใช้ของบอต (บัญชีที่ใช้ยืนยันตัวตน)
accessTokenstringrequiredโทเค็นการเข้าถึง OAuth ที่มี chat:read และ chat:write (การกำหนดค่าหรือตัวแปรสภาพแวดล้อมสำหรับบัญชีเริ่มต้น)
clientIdstringrequiredClient ID ของ Twitch (จาก Token Generator หรือแอปของคุณ) ไม่บังคับในสคีมา แต่จำเป็นสำหรับการเชื่อมต่อ
channelstringrequiredช่องที่จะเข้าร่วม
enabledbooleandefault: trueเปิดใช้งานบัญชีนี้
clientSecretstringไม่บังคับ: สำหรับการรีเฟรชโทเค็นอัตโนมัติ
refreshTokenstringไม่บังคับ: สำหรับการรีเฟรชโทเค็นอัตโนมัติ
expiresInnumberระยะเวลาจนโทเค็นหมดอายุเป็นวินาที (การติดตามการรีเฟรช)
obtainmentTimestampnumberการประทับเวลาเมื่อได้รับโทเค็น (การติดตามการรีเฟรช)
allowFromstring[]รายการอนุญาต ID ผู้ใช้ เมื่อตั้งค่าแล้ว ระบบจะไม่สนใจบทบาท
allowedRolesArray<"moderator" | "owner" | "vip" | "subscriber" | "all">การควบคุมการเข้าถึงตามบทบาท
requireMentionbooleandefault: trueกำหนดให้ต้อง @mention เพื่อเรียกใช้บอต
responsePrefixstringเขียนทับคำนำหน้าการตอบกลับขาออกสำหรับบัญชีนี้
ตัวเลือกผู้ให้บริการ
channels.twitch.enabled- เปิด/ปิดการเริ่มต้นช่องchannels.twitch.username/accessToken/clientId/channel- การกำหนดค่าบัญชีเดียวแบบเรียบง่าย (บัญชีdefaultโดยนัย; มีลำดับความสำคัญเหนือaccounts.default)channels.twitch.accounts.<accountName>- การกำหนดค่าหลายบัญชี (ฟิลด์บัญชีทั้งหมดด้านบน)channels.twitch.defaultAccount- ชื่อบัญชีที่จะใช้เป็นค่าเริ่มต้นchannels.twitch.markdown.tables- โหมดการแสดงผลตาราง Markdown (off|bullets|code|block)
ตัวอย่างฉบับเต็ม:
การทำงานของเครื่องมือ
เอเจนต์สามารถส่งข้อความ Twitch ผ่านการดำเนินการ send ของเครื่องมือข้อความ:
to ไม่บังคับและมีค่าเริ่มต้นเป็น channel ที่กำหนดค่าไว้สำหรับบัญชี
ความปลอดภัยและการปฏิบัติการ
- ปฏิบัติต่อโทเค็นเสมือนรหัสผ่าน - ห้ามคอมมิตโทเค็นไปยัง git
- ใช้การรีเฟรชโทเค็นอัตโนมัติ สำหรับบอตที่ทำงานเป็นเวลานาน
- ใช้รายการอนุญาตของ ID ผู้ใช้ แทนชื่อผู้ใช้เพื่อควบคุมการเข้าถึง
- ตรวจสอบบันทึก เพื่อดูเหตุการณ์การรีเฟรชโทเค็นและสถานะการเชื่อมต่อ
- จำกัดขอบเขตโทเค็นให้น้อยที่สุด - ขอเฉพาะ
chat:readและchat:write - หากติดขัด: รีสตาร์ต Gateway หลังจากยืนยันว่าไม่มีกระบวนการอื่นครอบครองเซสชันอยู่
ขีดจำกัด
- 500 อักขระ ต่อข้อความ การตอบกลับที่ยาวกว่านี้จะถูกแบ่งตามขอบเขตคำ
- Markdown จะถูกนำออกก่อนส่ง (แชต Twitch เป็นข้อความธรรมดา และการขึ้นบรรทัดใหม่จะเปลี่ยนเป็นช่องว่าง)
- OpenClaw ไม่ได้เพิ่มการจำกัดอัตราของตนเอง โดยไคลเอนต์แชต Twurple จะจัดการขีดจำกัดอัตราของ Twitch
เนื้อหาที่เกี่ยวข้อง
- การกำหนดเส้นทางช่องทาง — การกำหนดเส้นทางเซสชันสำหรับข้อความ
- ภาพรวมช่องทาง — ช่องทางที่รองรับทั้งหมด
- กลุ่ม — ลักษณะการทำงานของแชตกลุ่มและการควบคุมด้วยการกล่าวถึง
- การจับคู่ — การยืนยันตัวตนทาง DM และขั้นตอนการจับคู่
- ความปลอดภัย — โมเดลการเข้าถึงและการเสริมความปลอดภัย