Microsoft Teams (प्लगइन)
“जो यहाँ प्रवेश करे, सारी आशा त्याग दे।”अद्यतन: 2026-01-21 स्थिति: टेक्स्ट + DM अटैचमेंट्स समर्थित हैं; चैनल/ग्रुप में फ़ाइल भेजने के लिए
sharePointSiteId + Graph अनुमतियाँ आवश्यक हैं (देखें ग्रुप चैट्स में फ़ाइलें भेजना)। पोल्स Adaptive Cards के माध्यम से भेजे जाते हैं।
प्लगइन आवश्यक
Microsoft Teams एक प्लगइन के रूप में उपलब्ध है और कोर इंस्टॉल में शामिल नहीं है। Breaking change (2026.1.15): MS Teams moved out of core. If you use it, you must install the plugin. स्पष्टीकरण: इससे कोर इंस्टॉल हल्के रहते हैं और MS Teams की निर्भरताएँ स्वतंत्र रूप से अपडेट हो सकती हैं। CLI के माध्यम से इंस्टॉल करें (npm रजिस्ट्री):त्वरित सेटअप (शुरुआती)
- Microsoft Teams प्लगइन इंस्टॉल करें।
- एक Azure Bot बनाएँ (App ID + client secret + tenant ID)।
- उन क्रेडेंशियल्स के साथ OpenClaw को कॉन्फ़िगर करें।
/api/messages(डिफ़ॉल्ट रूप से पोर्ट 3978) को सार्वजनिक URL या टनल के माध्यम से एक्सपोज़ करें।- Teams ऐप पैकेज इंस्टॉल करें और Gateway प्रारंभ करें।
channels.msteams.groupPolicy: "allowlist")। ग्रुप रिप्लाई की अनुमति देने के लिए channels.msteams.groupAllowFrom सेट करें (या किसी भी सदस्य को अनुमति देने के लिए groupPolicy: "open" का उपयोग करें, mention-gated)।
लक्ष्य
- Teams DMs, समूह चैट या चैनलों के माध्यम से OpenClaw से बात करना।
- रूटिंग को निर्धारक रखना: उत्तर हमेशा उसी चैनल में वापस जाएँ जहाँ से वे आए।
- सुरक्षित चैनल व्यवहार को डिफ़ॉल्ट रखना (जब तक अन्यथा कॉन्फ़िगर न हो, mentions आवश्यक)।
Config लिखना
डिफ़ॉल्ट रूप से, Microsoft Teams को/config set|unset द्वारा ट्रिगर किए गए config अपडेट लिखने की अनुमति है (इसके लिए commands.config: true आवश्यक है)।
अक्षम करने के लिए:
प्रवेश नियंत्रण (DMs + समूह)
DM प्रवेश- डिफ़ॉल्ट:
channels.msteams.dmPolicy = "pairing"। अज्ञात प्रेषकों को स्वीकृति मिलने तक अनदेखा किया जाता है। channels.msteams.allowFromAAD object IDs, UPNs, या display names स्वीकार करता है। जब क्रेडेंशियल्स अनुमति देते हैं, तो विज़ार्ड Microsoft Graph के माध्यम से नामों को IDs में resolve करता है।
- डिफ़ॉल्ट:
channels.msteams.groupPolicy = "allowlist"(जब तक आपgroupAllowFromनहीं जोड़ते, तब तक ब्लॉक रहता है)। जब सेट न हो, तो डिफ़ॉल्ट को ओवरराइड करने के लिएchannels.defaults.groupPolicyका उपयोग करें। channels.msteams.groupAllowFromनियंत्रित करता है कि समूह चैट/चैनलों में कौन से प्रेषक ट्रिगर कर सकते हैं (fallback:channels.msteams.allowFrom)।- किसी भी सदस्य को अनुमति देने के लिए
groupPolicy: "open"सेट करें (डिफ़ॉल्ट रूप से अभी भी mention‑gated)। - कोई चैनल नहीं अनुमति देने के लिए
channels.msteams.groupPolicy: "disabled"सेट करें।
channels.msteams.teamsके अंतर्गत teams और channels सूचीबद्ध करके समूह/चैनल उत्तरों का दायरा सीमित करें।- Keys टीम IDs या नाम हो सकते हैं; चैनल keys conversation IDs या नाम हो सकते हैं।
- जब
groupPolicy="allowlist"और teams allowlist मौजूद हो, तो केवल सूचीबद्ध teams/channels स्वीकार किए जाते हैं (mention‑gated)। - configure विज़ार्ड
Team/Channelप्रविष्टियाँ स्वीकार करता है और उन्हें आपके लिए सहेज देता है। - स्टार्टअप पर, OpenClaw टीम/चैनल और उपयोगकर्ता allowlist नामों को IDs में resolve करता है (जब Graph अनुमतियाँ अनुमति दें) और मैपिंग लॉग करता है; जो resolve न हों, वे टाइप किए गए रूप में ही रखे जाते हैं।
यह कैसे काम करता है
- Microsoft Teams प्लगइन इंस्टॉल करें।
- एक Azure Bot बनाएँ (App ID + secret + tenant ID)।
- एक Teams ऐप पैकेज बनाएँ जो बॉट को संदर्भित करे और नीचे दी गई RSC अनुमतियाँ शामिल करे।
- Teams ऐप को किसी टीम में (या DMs के लिए personal scope में) अपलोड/इंस्टॉल करें।
~/.openclaw/openclaw.json(या env vars) मेंmsteamsकॉन्फ़िगर करें और Gateway प्रारंभ करें।- Gateway डिफ़ॉल्ट रूप से
/api/messagesपर Bot Framework webhook ट्रैफ़िक सुनता है।
Azure Bot सेटअप (पूर्वापेक्षाएँ)
OpenClaw को कॉन्फ़िगर करने से पहले, आपको Azure Bot संसाधन बनाना होगा।चरण 1: Azure Bot बनाएँ
- Create Azure Bot पर जाएँ
-
Basics टैब भरें:
फ़ील्ड मान बॉट हैंडल आपका बॉट नाम, जैसे openclaw-msteams(अद्वितीय होना चाहिए)सब्सक्रिप्शन अपनी Azure subscription चुनें रिसोर्स ग्रुप नया बनाएँ या मौजूदा का उपयोग करें प्राइसिंग टियर dev/testing के लिए Free Type of App Single Tenant (अनुशंसित - नीचे नोट देखें) Creation type Create new Microsoft App ID
अप्रचलन सूचना: नए मल्टी-टेनेंट बॉट्स का निर्माण 2025-07-31 के बाद अप्रचलित कर दिया गया। नए बॉट्स के लिए Single Tenant का उपयोग करें।
- Review + create → Create पर क्लिक करें (~1-2 मिनट प्रतीक्षा करें)
चरण 2: क्रेडेंशियल्स प्राप्त करें
- अपने Azure Bot संसाधन → Configuration पर जाएँ
- Microsoft App ID कॉपी करें → यही आपका
appIdहै - Manage Password पर क्लिक करें → App Registration पर जाएँ
- Certificates & secrets → New client secret → Value कॉपी करें → यही आपका
appPasswordहै - Overview → Directory (tenant) ID कॉपी करें → यही आपका
tenantIdहै
चरण 3: Messaging Endpoint कॉन्फ़िगर करें
- Azure Bot → Configuration
- Messaging endpoint को अपने webhook URL पर सेट करें:
- Production:
https://your-domain.com/api/messages - Local dev: एक टनल का उपयोग करें (नीचे Local Development देखें)
- Production:
चरण 4: Teams चैनल सक्षम करें
- Azure Bot → Channels
- Microsoft Teams → Configure → Save पर क्लिक करें
- सेवा की शर्तें स्वीकार करें
Local Development (Tunneling)
Teamslocalhost तक नहीं पहुँच सकता। लोकल डेवलपमेंट के लिए टनल का उपयोग करें:
विकल्प A: ngrok
Teams Developer Portal (वैकल्पिक)
मैन्युअली manifest ZIP बनाने के बजाय, आप Teams Developer Portal का उपयोग कर सकते हैं:- + New app पर क्लिक करें
- बुनियादी जानकारी भरें (नाम, विवरण, डेवलपर जानकारी)
- App features → Bot पर जाएँ
- Enter a bot ID manually चुनें और अपना Azure Bot App ID पेस्ट करें
- Scopes चुनें: Personal, Team, Group Chat
- Distribute → Download app package
- Teams में: Apps → Manage your apps → Upload a custom app → ZIP चुनें