เชื่อมต่อ Twitch
คู่มือนี้สำหรับสตรีมเมอร์ที่สตรีมบน Twitch เมื่อเชื่อมต่อแล้ว แอปจะรับ event ผ่าน EventSub WebSocket:
- Bits / Cheer — เข้าคิวเป็น donation
- Subscription / Resub / Gift Sub — เข้าคิวเป็น donation event
- Chat ทั่วไป — เข้า Live Chat feed
เหมือน YouTube — ต้องสร้างแอปใน Twitch Developer Console เพื่อขอ Client ID + Secret มาก่อน
สิ่งที่ต้องเตรียม
- Twitch account ที่ใช้สตรีม
- เข้าถึง Twitch Developer Console
- Stream Community Manager เปิดอยู่
ขั้นที่ 1 — สร้าง App ใน Twitch Developer Console
- เข้า dev.twitch.tv/console ล็อกอินด้วย Twitch account
- กด Applications → Register Your Application
- กรอก:
- Name — ชื่ออะไรก็ได้ (เช่น "Mor9an")
- OAuth Redirect URLs —
http://localhost:3001/api/auth/twitch/callback - Category — Application Integration
- กด Create
- กลับเข้าแอปที่สร้าง → กด Manage → คัดลอก Client ID และกด New Secret เพื่อสร้าง Client Secret
:::warning Redirect URL ต้องตรงเป๊ะ
URL http://localhost:3001/api/auth/twitch/callback ต้องตรงทุกตัวอักษร ห้ามมี / ท้ายเพิ่ม ห้ามใช้ https — ไม่งั้น Twitch จะ reject ตอน OAuth
:::
ขั้นที่ 2 — วาง Client ID / Secret ในแอป
- ในแอป ไปที่ Settings → Connections
- เลื่อนหาส่วน Twitch
- วาง Client ID + Client Secret ในช่อง
- กด Save / บันทึก
ขั้นที่ 3 — กด Connect Twitch และอนุมัติ OAuth
- กดปุ่ม Connect Twitch
- เบราว์เซอร์เปิดหน้า OAuth ของ Twitch
- กด Authorize เพื่ออนุมัติ scope ที่จำเป็น (read chat, read subscriptions, read bits)
- หน้าจะเด้งกลับเข้าแอป — status dot ของ Twitch ควรเปลี่ยนเป็น เขียว
ขั้นที่ 4 — ทดสอบ event
หลัง connected:
- ลองให้เพื่อน cheer 1 bit หรือ sub กิฟต์เข้าช่องคุณ
- หรือใช้หน้า Test Panel เลือก source = Twitch แล้วส่ง donation จำลอง
ถ้าทุกอย่างถูก: คิวจะเด้ง, TTS อ่าน, overlay โผล่ใน OBS
Tips & Troubleshooting
- OAuth error "Invalid redirect URI": ตรวจ Redirect URL ใน Twitch Console ให้ตรงเป๊ะกับ
http://localhost:3001/api/auth/twitch/callback - Connected แต่ไม่ได้ event: EventSub ต้อง subscribe topic — แอปทำให้อัตโนมัติตอน connect ถ้ายังไม่ได้ ลอง disconnect แล้ว connect ใหม่
- Token หมดอายุ: EventSub token หมดอายุได้ — แอป refresh ให้อัตโนมัติเป็นส่วนใหญ่ ถ้า status เด้งเป็นแดงเองให้ connect ใหม่
- Client Secret หาย: กลับไป Twitch Console → Manage → กด New Secret (ของเก่าจะถูก revoke)