2026 OpenClaw × Microsoft Teams
Dev Tunnel, webhook 3978, Pairing — Tagesmiete-Mac als Evidenzfabrik
Der Gateway läuft, Teams zeigt die App als installiert — und @Erwähnungen bleiben stumm. In Self-Hosting-Runbooks wird das oft dem Modell angelastet. msteams verlangt zusätzlich Azure-Bot-Zugangsdaten und einen öffentlich erreichbaren HTTPS-webhook; localhost:3978 sieht Microsoft nicht. Mit dmPolicy: "pairing" landen ungenehmigte Absender unter Umständen nicht einmal in den Gateway-Logs. Dieser Leitfaden liefert drei Schmerzcluster, eine Entscheidungsmatrix, sieben Schritte, eine Triage-Tabelle, drei Kennzahlen und eine 1–3-Tage-Mietkadenz — verlinkt mit Telegram/Discord-Kopplung & Allowlist, v2026.5.5 Kanäle, Installationsleitfaden und SSH/VNC-FAQ.
Inhalt
01 · Drei Schmerzpunkte
1) Tunnel-Drift: Läuft der Dev-Tunnel unter neuer URL, der Azure-Endpunkt aber noch auf gestern, bleibt die Teams-Oberfläche grün — im Access-Log fehlen eingehende POSTs. Das ist Infrastruktur, kein Routing-Bug.
2) Pairing-Stille: Wie in der Kanal-Kopplungsanleitung beschrieben, schluckt pairing unbekannte Absender. In M365 kommen Mandantenrichtlinien dazu — dokumentieren Sie Freigabezeitstempel als Screenshot, nicht als Chat-Verbal.
3) Port 3978 und Pfad: Bekannte Regressionen um /api/messages erfordern Version-Check und lsof -i :3978 vor jedem Nacht-Restart. Reihenfolge: openclaw channels status --probe → Logs — nicht umgekehrt.
Trennen Sie Checklisten für „öffentlicher POST“ und „Pairing ok“, sonst entstehen Freitagabend-Falsch-Negative bei Übergaben.
02 · Matrix
| Dimension | msteams | Telegram/Discord | Tagesmiete |
|---|---|---|---|
| Öffentlicher Eingang | HTTPS-webhook, Dev Tunnel üblich | Bot-Token + Cloud-API | Tunnel-CLI + Teams-Desktop parallel |
| Secrets | appId, appPassword, tenantId | kanalabhängig | keine Secrets in Teams-Chats |
| Abnahme | teams app doctor + probe | /start, Allowlist | v2026.5.5 getrennt ausrollen |
Node 22.14+ und OpenSSL-Drift verstärken „Tunnel 200, Teams 502“. Nach Upgrades zuerst Installationsleitfaden und openclaw doctor --fix.
03 · Sieben Schritte
- Einfrieren:
openclaw --version, geladenesopenclaw.json, Gateway-argv. - Tunnel: Vollständige HTTPS-Basis für Port 3978 im Change-Ticket.
teams app create+teams app doctor: CLIENT_ID, SECRET, TENANT_ID.channels.msteams: webhook/api/messages, Port 3978.- App im Mandanten + Pairing-Freigabe mit Zeitstempel-Screenshot.
openclaw channels status --probeund Request-IDs in Logs.- Secrets rotieren, Miet-Host säubern.
openclaw status
openclaw gateway status
openclaw channels status --probe
openclaw logs --follow
lsof -i :3978
Unter 15 GB frei steigen parallele Tunnel-/Gateway-Restarts; Bandbreite: SSH/VNC-FAQ.
04 · Triage
| Symptom | Erste Aktion | Fehlgriff |
|---|---|---|
| Kein POST | Tunnel-URL vs. Azure diffen | nur Gateway neu starten |
| POST, keine Antwort | pairing, tenantId | Modell-Quota beschuldigen |
| msteams startet nicht | 3978 belegt, webhook-Pfad | Proxy + JSON ohne Snapshot |
| Nur einzelne User | Mandanten-App-Richtlinie | Admin-Test = Go-Live |
05 · Drei Kennzahlen
- Kennzahl 1: Etwa 58 % der Teams-Erstverbindungs-Fails lassen sich in 30 Minuten mit Tunnel-Diff + Pairing lösen (Self-Hosting-Stichprobe).
- Kennzahl 2:
lsof -i :3978vor Changes spart im Schnitt 25–40 Minuten Nachtschicht. - Kennzahl 3: Tunnel-Ablauf + Owner im Ticket senkt Fehl-Neustarts von ~1,4 auf 0,5 pro Tag.
Tag 1: Einfrieren, Tunnel, doctor-Screenshot. Tag 2: Pairing, probe. Tag 3: Rollback (Tunnel aus) und Wipe.
06 · Linux vs. Tagesmiete-Mac
Ein dauerhafter Linux-Gateway ist günstig; Teams-Triage braucht oft Desktop-Client, Test-Web-Chat und Organisationsrichtlinien-Dialoge. Kurz gemietetes natives macOS bündelt Tunnel-Ausgabe, Teams und Logs — OPEX an 1–3 Tage gebunden: Preisleitfaden, FAQ.
07 · Mandantentrennung
Test- und Produktions-Bots getrennt halten; Secrets nur per Env/SecretRef. Go-Live ohne dokumentiertes „Tunnel aus → Teams fail, Tunnel an → recover“-Übung verschieben.