Skip to main content
Twurple क्लाइंट के माध्यम से Twitch के चैट (IRC) इंटरफ़ेस पर Twitch चैट समर्थन। OpenClaw एक Twitch बॉट खाते के रूप में साइन इन करता है, प्रत्येक कॉन्फ़िगर किए गए खाते के लिए एक चैनल से जुड़ता है और उसी चैनल में उत्तर देता है।

इंस्टॉल करें

Twitch एक आधिकारिक Plugin के रूप में उपलब्ध है; यह मुख्य इंस्टॉलेशन का हिस्सा नहीं है।
plugins install Plugin को पंजीकृत और सक्षम करता है। openclaw onboard या openclaw channels add के दौरान Twitch चुनने पर इसे आवश्यकता के अनुसार इंस्टॉल किया जाता है। वर्तमान रिलीज़ का अनुसरण करने के लिए केवल पैकेज नाम का उपयोग करें; पुनरुत्पाद्य इंस्टॉलेशन के लिए ही कोई सटीक संस्करण पिन करें। OpenClaw 2026.4.10 या उसके बाद का संस्करण आवश्यक है। विवरण: Plugins

त्वरित सेटअप

1

Plugin इंस्टॉल करें

ऊपर इंस्टॉल करें देखें।
2

Twitch बॉट खाता बनाएँ

बॉट के लिए एक समर्पित Twitch खाता बनाएँ (या किसी मौजूदा खाते का उपयोग करें)।
3

क्रेडेंशियल जनरेट करें

Twitch Token Generator का उपयोग करें:
  • Bot Token चुनें
  • सत्यापित करें कि स्कोप chat:read और chat:write चुने गए हैं
  • Client ID और Access Token कॉपी करें
4

अपनी Twitch उपयोगकर्ता ID खोजें

किसी उपयोगकर्ता नाम को Twitch उपयोगकर्ता ID में बदलने के लिए https://www.streamweasels.com/tools/convert-twitch-username-to-user-id/ का उपयोग करें।
5

टोकन कॉन्फ़िगर करें

  • परिवेश: OPENCLAW_TWITCH_ACCESS_TOKEN=... (केवल डिफ़ॉल्ट खाता)
  • या कॉन्फ़िगरेशन: channels.twitch.accessToken
यदि दोनों सेट हैं, तो कॉन्फ़िगरेशन को प्राथमिकता मिलती है (परिवेश चर केवल डिफ़ॉल्ट खाते के लिए फ़ॉलबैक है)।
6

Gateway शुरू करें

अनधिकृत उपयोगकर्ताओं को बॉट ट्रिगर करने से रोकने के लिए अभिगम नियंत्रण (allowFrom या allowedRoles) जोड़ें। requireMention का डिफ़ॉल्ट मान true है।
न्यूनतम कॉन्फ़िगरेशन:

यह क्या है

  • Gateway के स्वामित्व वाला एक Twitch चैनल।
  • नियतात्मक रूटिंग: उत्तर हमेशा उसी Twitch चैनल पर वापस जाते हैं जहाँ से संदेश आया था।
  • जुड़ा हुआ प्रत्येक चैनल एक पृथक समूह सत्र कुंजी agent:<agentId>:twitch:group:<channel> से मैप होता है।
  • username बॉट का खाता है (जो प्रमाणीकरण करता है), channel वह चैट रूम है जिससे जुड़ना है। प्रत्येक खाता प्रविष्टि ठीक एक चैनल से जुड़ती है।
  • टोकन oauth: उपसर्ग के साथ या उसके बिना काम करते हैं; OpenClaw दोनों रूपों को सामान्यीकृत करता है (सेटअप विज़ार्ड oauth: रूप की अपेक्षा करता है)।

इनबाउंड टिकाऊपन

OpenClaw सामान्य प्रेषण से पहले स्वीकार किए गए प्रत्येक Twitch चैट संदेश को टिकाऊ रूप से कतारबद्ध करता है। लंबित या पुनः प्रयास योग्य संदेश Gateway के पुनः आरंभ होने के बाद भी बने रहते हैं, कॉन्फ़िगर किए गए चैनल के लिए क्रमबद्ध रहते हैं और सक्रिय या संरक्षित पूर्णता रिकॉर्ड मौजूद रहने तक डुप्लिकेट कतार प्रविष्टियों को रोकने के लिए Twitch की संदेश ID का उपयोग करते हैं। क्लाइंट द्वारा स्वीकार किए जाने के बाद Twitch चैट किसी PRIVMSG को दोबारा नहीं भेजती। यह स्थानीय स्वीकार-से-प्रेषण क्रैश अवधि से सुरक्षा देता है, लेकिन टिकाऊ स्वीकृति से पहले छूटे संदेशों को पुनर्प्राप्त नहीं कर सकता। यदि कतार में जोड़ना ही विफल हो जाए, तो OpenClaw विफलता को लॉग करता है; दोबारा कनेक्ट होने पर Twitch से उस संदेश को पुनः भेजने का अनुरोध नहीं किया जाता।

टोकन रीफ़्रेश (वैकल्पिक)

Twitch Token Generator से प्राप्त टोकन को OpenClaw रीफ़्रेश नहीं कर सकता—समाप्त होने पर उन्हें फिर से जनरेट करें (वे कुछ घंटों तक चलते हैं; ऐप पंजीकरण आवश्यक नहीं है)। स्वचालित रीफ़्रेश के लिए Twitch Developer Console पर अपना ऐप बनाएँ और यह जोड़ें:
दोनों सेट होने पर Plugin ऐसे रीफ़्रेशिंग प्रमाणीकरण प्रदाता का उपयोग करता है जो टोकन की समय-सीमा समाप्त होने से पहले उन्हें नवीनीकृत करता है और प्रत्येक रीफ़्रेश को लॉग करता है। refreshToken के बिना यह token refresh disabled (no refresh token) लॉग करता है; clientSecret के बिना यह स्थिर (रीफ़्रेश न होने वाले) टोकन पर फ़ॉलबैक करता है।

बहु-खाता समर्थन

प्रत्येक खाते के अलग क्रेडेंशियल के साथ channels.twitch.accounts का उपयोग करें। साझा पैटर्न के लिए कॉन्फ़िगरेशन देखें। उदाहरण (दो चैनलों में एक बॉट खाता):
प्रत्येक खाता प्रविष्टि को अपना accessToken चाहिए (परिवेश चर केवल डिफ़ॉल्ट खाते को कवर करता है)। एक खाता ठीक एक चैनल से जुड़ता है, इसलिए दो चैनलों से जुड़ने का अर्थ है दो खाते। channels.twitch.defaultAccount यह चुनता है कि कौन-सा खाता डिफ़ॉल्ट है।

अभिगम नियंत्रण

allowFrom Twitch उपयोगकर्ता ID की कठोर अनुमति-सूची है। इसे सेट करने पर allowedRoles को अनदेखा किया जाता है; इसके बजाय भूमिका-आधारित अभिगम का उपयोग करने के लिए allowFrom को सेट न करें। उपलब्ध भूमिकाएँ: "moderator", "owner", "vip", "subscriber", "all"
उपयोगकर्ता ID क्यों? उपयोगकर्ता नाम बदल सकते हैं, जिससे प्रतिरूपण संभव होता है। उपयोगकर्ता ID स्थायी होती हैं।अपनी ID उपयोगकर्ता नाम से ID कन्वर्टर से खोजें।

समस्या निवारण

पहले नैदानिक कमांड चलाएँ:
  • अभिगम नियंत्रण जाँचें: सुनिश्चित करें कि आपकी उपयोगकर्ता ID allowFrom में है, या परीक्षण के लिए अस्थायी रूप से allowFrom हटाकर allowedRoles: ["all"] सेट करें।
  • उल्लेख गेट जाँचें: requireMention: true (डिफ़ॉल्ट) के साथ संदेशों में बॉट उपयोगकर्ता नाम को @mention करना आवश्यक है।
  • जाँचें कि बॉट चैनल में है: बॉट केवल channel में नामित चैनल से जुड़ता है।
“कनेक्ट करने में विफल” या प्रमाणीकरण त्रुटियाँ:
  • सत्यापित करें कि accessToken OAuth अभिगम टोकन का मान है (oauth: उपसर्ग वैकल्पिक है)
  • जाँचें कि टोकन में chat:read और chat:write स्कोप हैं
  • यदि टोकन रीफ़्रेश का उपयोग कर रहे हैं, तो सत्यापित करें कि clientSecret और refreshToken सेट हैं
रीफ़्रेश घटनाओं के लिए लॉग जाँचें:
यदि आपको token refresh disabled (no refresh token) दिखाई दे:
  • सुनिश्चित करें कि clientSecret दिया गया है
  • सुनिश्चित करें कि refreshToken दिया गया है

कॉन्फ़िगरेशन

खाता कॉन्फ़िगरेशन

string
आवश्यक
बॉट उपयोगकर्ता नाम (प्रमाणीकरण करने वाला खाता)।
string
आवश्यक
chat:read और chat:write वाला OAuth अभिगम टोकन (डिफ़ॉल्ट खाते के लिए कॉन्फ़िगरेशन या परिवेश)।
string
आवश्यक
Twitch Client ID (Token Generator या आपके ऐप से)। स्कीमा में वैकल्पिक, लेकिन कनेक्ट करने के लिए आवश्यक।
string
आवश्यक
जुड़ने वाला चैनल।
boolean
डिफ़ॉल्ट:"true"
यह खाता सक्षम करें।
string
वैकल्पिक: स्वचालित टोकन रीफ़्रेश के लिए।
string
वैकल्पिक: स्वचालित टोकन रीफ़्रेश के लिए।
number
टोकन समाप्ति अवधि सेकंड में (रीफ़्रेश ट्रैकिंग)।
number
टोकन प्राप्त होने का टाइमस्टैम्प (रीफ़्रेश ट्रैकिंग)।
string[]
उपयोगकर्ता ID अनुमति-सूची। सेट होने पर भूमिकाओं को अनदेखा किया जाता है।
Array<"moderator" | "owner" | "vip" | "subscriber" | "all">
भूमिका-आधारित अभिगम नियंत्रण।
boolean
डिफ़ॉल्ट:"true"
बॉट को ट्रिगर करने के लिए @mention आवश्यक करें।
string
इस खाते के लिए आउटबाउंड उत्तर उपसर्ग का ओवरराइड।

प्रदाता विकल्प

  • 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)
पूर्ण उदाहरण:

टूल क्रियाएँ

एजेंट संदेश टूल की send क्रिया के माध्यम से Twitch संदेश भेज सकता है:
to वैकल्पिक है और इसका डिफ़ॉल्ट मान खाते का कॉन्फ़िगर किया गया channel है।

सुरक्षा और संचालन

  • टोकन को पासवर्ड की तरह मानें - टोकन को कभी भी git में कमिट न करें।
  • लंबे समय तक चलने वाले बॉट के लिए स्वचालित टोकन रिफ़्रेश का उपयोग करें
  • एक्सेस नियंत्रण के लिए उपयोगकर्ता नामों के बजाय उपयोगकर्ता ID की अनुमतिसूचियों का उपयोग करें
  • टोकन रिफ़्रेश घटनाओं और कनेक्शन स्थिति के लिए लॉग की निगरानी करें
  • टोकन का दायरा न्यूनतम रखें - केवल chat:read और chat:write का अनुरोध करें।
  • यदि अटक जाएँ: यह पुष्टि करने के बाद Gateway को पुनः आरंभ करें कि सत्र का स्वामी कोई अन्य प्रोसेस नहीं है।

सीमाएँ

  • प्रति संदेश 500 वर्ण; लंबे उत्तरों को शब्द सीमाओं पर खंडों में बाँटा जाता है।
  • भेजने से पहले Markdown हटा दिया जाता है (Twitch चैट सादा टेक्स्ट है; नई पंक्तियाँ रिक्त स्थान में बदल जाती हैं)।
  • OpenClaw स्वयं कोई दर सीमा लागू नहीं करता; Twurple चैट क्लाइंट Twitch की दर सीमाओं को संभालता है।

संबंधित