Regional platforms
Zalo व्यक्तिगत
स्थिति: प्रयोगात्मक। यह इंटीग्रेशन किसी बाहरी CLI बाइनरी के बिना, इन-प्रोसेस मूल zca-js के माध्यम से एक व्यक्तिगत Zalo खाते को स्वचालित करता है।
इंस्टॉल करें
Zalo Personal एक आधिकारिक बाहरी Plugin है, जो कोर के साथ बंडल नहीं है। उपयोग से पहले इसे इंस्टॉल करें:
openclaw plugins install @openclaw/zalouser- संस्करण पिन करें:
openclaw plugins install @openclaw/zalouser@<version> - स्रोत चेकआउट से:
openclaw plugins install ./path/to/local/zalouser-plugin - विवरण: Plugins
त्वरित सेटअप
- Plugin इंस्टॉल करें (ऊपर देखें)।
- लॉग इन करें (QR, Gateway मशीन पर):
openclaw channels login --channel zalouser- Zalo मोबाइल ऐप से QR कोड स्कैन करें।
- चैनल सक्षम करें:
{ channels: { zalouser: { enabled: true, dmPolicy: "pairing", }, },}- Gateway को पुनः आरंभ करें (या सेटअप पूरा करें)।
- DM एक्सेस डिफ़ॉल्ट रूप से पेयरिंग का उपयोग करता है; पहले संपर्क पर पेयरिंग कोड स्वीकृत करें।
यह क्या है
- यह पूरी तरह
zca-jsलाइब्रेरी के माध्यम से इन-प्रोसेस चलता है (कोई बाहरीzca/openzcaबाइनरी नहीं)। - इनबाउंड संदेश प्राप्त करने के लिए मूल इवेंट लिसनर (
message,error) का उपयोग करता है। - JS API के माध्यम से सीधे उत्तर भेजता है (टेक्स्ट/मीडिया/लिंक)।
- उन "व्यक्तिगत खाते" के उपयोग मामलों के लिए डिज़ाइन किया गया है जहाँ Zalo Bot API उपलब्ध नहीं है।
नामकरण
चैनल आईडी zalouser है, ताकि यह स्पष्ट रहे कि यह एक व्यक्तिगत Zalo उपयोगकर्ता खाते (अनौपचारिक) को स्वचालित करता है। zalo संभावित भावी आधिकारिक Zalo API इंटीग्रेशन के लिए आरक्षित है।
आईडी ढूँढना (डायरेक्टरी)
openclaw directory self --channel zalouseropenclaw directory peers list --channel zalouser --query "name"openclaw directory groups list --channel zalouser --query "work"सीमाएँ
- आउटबाउंड टेक्स्ट को 2000 वर्णों के खंडों में बाँटा जाता है (Zalo क्लाइंट सीमा)।
- स्ट्रीमिंग समर्थित नहीं है।
- पूर्ण हो चुके इनबाउंड संदेश आईडी 30 दिनों तक रखे जाते हैं और प्रत्येक खाते के लिए सबसे हाल की 1000 प्रविष्टियों तक सीमित रहते हैं।
इनबाउंड स्थायित्व
OpenClaw प्रत्येक अपरिष्कृत zca-js संदेश कॉलबैक को संसाधित करने से पहले संग्रहीत करता है। Gateway के पुनः आरंभ होने के बाद लंबित संदेश खाते की कतार से फिर शुरू होते हैं और प्रत्येक प्रत्यक्ष चैट या समूह के लिए प्रसंस्करण क्रमिक बना रहता है।
zca-js सॉकेट लिसनर डिलीवरी अभिस्वीकृति उपलब्ध नहीं कराता और पुनः कनेक्ट होने के बाद पुराने संदेशों को स्वचालित रूप से दोबारा नहीं चलाता। इसलिए टिकाऊ कतार किसी कॉलबैक के OpenClaw तक पहुँचने के बाद स्थानीय क्रैश की अवधि से सुरक्षा देती है; यह ऐसे संदेश को पुनर्प्राप्त नहीं कर सकती जिसे सॉकेट ने कभी डिलीवर ही नहीं किया। रीप्ले टूमस्टोन मुख्यतः उसी Zalo संदेश आईडी वाले दोहराए गए कॉलबैक के विरुद्ध सुरक्षा उपाय हैं।
एक्सेस नियंत्रण (DM)
channels.zalouser.dmPolicy: pairing | allowlist | open | disabled (डिफ़ॉल्ट: pairing)।
channels.zalouser.allowFrom में स्थिर Zalo उपयोगकर्ता आईडी का उपयोग होना चाहिए। यह स्थिर प्रेषक एक्सेस समूहों (accessGroup:<name>) को भी संदर्भित कर सकता है। इंटरैक्टिव सेटअप के दौरान दर्ज किए गए नामों को Plugin के इन-प्रोसेस संपर्क लुकअप का उपयोग करके आईडी में बदला जा सकता है।
यदि कॉन्फ़िगरेशन में कोई अपरिष्कृत नाम बना रहता है, तो स्टार्टअप उसे केवल तभी हल करता है जब channels.zalouser.dangerouslyAllowNameMatching: true सक्षम हो। इस ऑप्ट-इन के बिना, रनटाइम प्रेषक जाँच केवल आईडी पर आधारित होती है और प्राधिकरण के लिए अपरिष्कृत नामों को अनदेखा किया जाता है।
इसके माध्यम से स्वीकृत करें:
openclaw pairing list zalouseropenclaw pairing approve zalouser <code>
समूह एक्सेस (वैकल्पिक)
- डिफ़ॉल्ट:
channels.zalouser.groupPolicy = "allowlist"(समूहों के लिए स्पष्ट अनुमति-सूची प्रविष्टि आवश्यक है)। - सभी समूह खोलें:
channels.zalouser.groupPolicy = "open"। - सभी समूह अवरुद्ध करें:
channels.zalouser.groupPolicy = "disabled"। groupPolicy = "allowlist"के साथ:channels.zalouser.groupsकुंजियाँ स्थिर समूह आईडी होनी चाहिए; नामों को स्टार्टअप पर केवल तभी आईडी में बदला जाता है जबchannels.zalouser.dangerouslyAllowNameMatching: trueसक्षम हो।channels.zalouser.groupAllowFromनियंत्रित करता है कि अनुमत समूहों में कौन-से प्रेषक बॉट को सक्रिय कर सकते हैं; स्थिर प्रेषक एक्सेस समूहों कोaccessGroup:<name>के माध्यम से संदर्भित किया जा सकता है।
- कॉन्फ़िगर विज़ार्ड समूह अनुमति-सूचियों के लिए संकेत दे सकता है।
- समूह अनुमति-सूची मिलान डिफ़ॉल्ट रूप से केवल आईडी पर आधारित होता है। जब तक
channels.zalouser.dangerouslyAllowNameMatching: trueसक्षम न हो, अनसुलझे नामों को प्रमाणीकरण के लिए अनदेखा किया जाता है। channels.zalouser.dangerouslyAllowNameMatching: trueआपातकालीन संगतता मोड है, जो परिवर्तनशील स्टार्टअप नाम समाधान और रनटाइम समूह-नाम मिलान को फिर से सक्षम करता है।groupAllowFromसामान्य समूह संदेशों के लिएallowFromपर वापस नहीं जाता: अनुमति-सूची वाले समूह में इसे खाली छोड़ने पर वह समूह किसी भी प्रेषक के लिए खुल जाता है। अधिकृत नियंत्रण कमांड (उदाहरण के लिए/new) अपवाद हैं; जबgroupAllowFromखाली हो, तो कमांड प्रेषक जाँचallowFromपर वापस जाती है।
उदाहरण:
{ channels: { zalouser: { groupPolicy: "allowlist", groupAllowFrom: ["1471383327500481391"], groups: { "123456789": { enabled: true }, "Work Chat": { enabled: true }, }, }, },}समूह उल्लेख गेटिंग
channels.zalouser.groups.<group>.requireMentionनियंत्रित करता है कि समूह के उत्तरों के लिए उल्लेख आवश्यक है या नहीं।- समाधान क्रम: समूह आईडी ->
group:<id>उपनाम -> समूह नाम/स्लग (नाम-आधारित उम्मीदवार केवल तभी लागू होते हैं जबdangerouslyAllowNameMatching: true) ->*-> डिफ़ॉल्ट (true)। - यह अनुमति-सूची वाले समूहों और खुले समूह मोड, दोनों पर लागू होता है।
- किसी बॉट संदेश को उद्धृत करना समूह सक्रियण के लिए अंतर्निहित उल्लेख माना जाता है।
- अधिकृत नियंत्रण कमांड (उदाहरण के लिए
/new) उल्लेख गेटिंग को बायपास कर सकते हैं। - जब उल्लेख आवश्यक होने के कारण समूह संदेश छोड़ दिया जाता है, तो OpenClaw उसे लंबित समूह इतिहास के रूप में संग्रहीत करता है और अगले संसाधित समूह संदेश में उसे शामिल करता है।
- समूह इतिहास सीमा:
channels.zalouser.historyLimit, फिरmessages.groupChat.historyLimit, फिर50का फ़ॉलबैक।
उदाहरण:
{ channels: { zalouser: { groupPolicy: "allowlist", groups: { "*": { enabled: true, requireMention: true }, "Work Chat": { enabled: true, requireMention: false }, }, }, },}बहु-खाता
खाते OpenClaw स्थिति में zalouser प्रोफ़ाइल से मैप होते हैं। उदाहरण:
{ channels: { zalouser: { enabled: true, defaultAccount: "default", accounts: { work: { enabled: true, profile: "work" }, }, }, },}पर्यावरण चर
प्रोफ़ाइल चयन पर्यावरण चरों से भी आ सकता है:
| चर | उद्देश्य |
|---|---|
ZALOUSER_PROFILE |
चैनल या खाता कॉन्फ़िगरेशन में कोई profile सेट न होने पर उपयोग किया जाने वाला प्रोफ़ाइल नाम। |
ZCA_PROFILE |
पुराना फ़ॉलबैक, जिसका उपयोग केवल तब होता है जब ZALOUSER_PROFILE सेट न हो। |
प्रोफ़ाइल नाम OpenClaw स्थिति में सहेजे गए Zalo लॉगिन क्रेडेंशियल चुनते हैं। समाधान क्रम:
- कॉन्फ़िगरेशन में स्पष्ट
profile। ZALOUSER_PROFILE।ZCA_PROFILE।- गैर-डिफ़ॉल्ट खातों के लिए खाता आईडी, या डिफ़ॉल्ट खाते के लिए
default।
बहु-खाता सेटअप के लिए, कॉन्फ़िगरेशन में प्रत्येक खाते पर profile सेट करना बेहतर है, ताकि एक पर्यावरण चर कई खातों को एक ही लॉगिन सत्र साझा करने के लिए बाध्य न करे।
टाइपिंग, प्रतिक्रियाएँ और डिलीवरी अभिस्वीकृतियाँ
- OpenClaw उत्तर भेजने से पहले एक टाइपिंग इवेंट भेजता है (सर्वोत्तम प्रयास)।
- चैनल कार्रवाइयों में
zalouserके लिए संदेश प्रतिक्रिया कार्रवाईreactसमर्थित है।- किसी संदेश से विशिष्ट प्रतिक्रिया इमोजी हटाने के लिए
remove: trueका उपयोग करें। - प्रतिक्रिया संबंधी अर्थविज्ञान: प्रतिक्रियाएँ
- किसी संदेश से विशिष्ट प्रतिक्रिया इमोजी हटाने के लिए
- इवेंट मेटाडेटा वाले इनबाउंड संदेशों के लिए, OpenClaw डिलीवर और देखे जाने की अभिस्वीकृतियाँ भेजता है (सर्वोत्तम प्रयास)।
समस्या निवारण
लॉगिन बना नहीं रहता:
openclaw channels status --probe- फिर से लॉग इन करें:
openclaw channels logout --channel zalouser && openclaw channels login --channel zalouser
अनुमति-सूची/समूह नाम का समाधान नहीं हुआ:
allowFrom/groupAllowFromमें संख्यात्मक आईडी औरgroupsमें स्थिर समूह आईडी का उपयोग करें। यदि आपको जानबूझकर सटीक मित्र/समूह नाम चाहिए, तोchannels.zalouser.dangerouslyAllowNameMatching: trueसक्षम करें।
पुराने बाहरी zca/CLI-आधारित सेटअप से अपग्रेड किया है:
- बाहरी
zcaप्रक्रिया से संबंधित सभी धारणाएँ हटा दें; चैनल अब बिना किसी बाहरी CLI बाइनरी के,zca-jsके माध्यम से पूरी तरह इन-प्रोसेस चलता है।
संबंधित
- चैनल अवलोकन - सभी समर्थित चैनल
- पेयरिंग - DM प्रमाणीकरण और पेयरिंग प्रवाह
- समूह - समूह चैट व्यवहार और उल्लेख गेटिंग
- चैनल रूटिंग - संदेशों के लिए सत्र रूटिंग
- सुरक्षा - एक्सेस मॉडल और सुदृढ़ीकरण