Slack-integráció beállítása
Ez az útmutató bemutatja, hogyan kapcsolhatja össze a Slacket egy Control Center-munkaterülettel, akár úgy, hogy a Control Center hozza létre az alkalmazást, akár úgy, hogy Ön építi fel saját maga.
Az első, vezetett végigpróbáláshoz lásd: Slack összekötése a munkaterülettel.
Előfeltételek
Szekció neve “Előfeltételek”- Az
ownervagyadminszerepkör a Control Center-munkaterületen — egy csevegőalkalmazás összekapcsolása a munkaterület beállításainak módosítása - Jogosultság alkalmazások létrehozásához és telepítéséhez a Slack-munkaterületen
- Semmi nyilvánosan elérhető: a kapcsolat kifelé indul (Socket Mode), így a szervernek nem kell bejövő port, alagút vagy domain
Három mód az alkalmazás megszerzésére
Szekció neve “Három mód az alkalmazás megszerzésére”| Útvonal | Amit Ön biztosít | Amit a Control Center végez |
|---|---|---|
| Vezetett | Egy alkalmazáskonfigurációs token (xoxe-…) |
Létrehozza az alkalmazást a megfelelő hatókörökkel, eseményekkel, Socket Mode-dal és slash-paranccsal; átadja Önnek azt a két lépést, amelyre a Slacknek nincs API-ja |
| Létrehozás a(z) Slack felületen | Semmit | Megnyitja a Slacket ugyanezzel az előre kitöltött konfigurációval; Ön kiválaszt egy munkaterületet, és megerősíti |
| Kézzel | A kész alkalmazás tokenjeit | Ellenőrzi őket, és csatlakozik |
A vezetett útvonal az egyetlen, amely azt is eléri, hogy az alkalmazás a Control Centerből kezelhető legyen, és ez teszi lehetővé a Csevegőbot testreszabása funkciót. Egy Létrehozás a(z) Slack felületen módon készült alkalmazás később kezelt alkalmazássá léptethető elő, ha beilleszt egy alkalmazáskonfigurációs tokent a csatlakozási párbeszédablakban.
Szándékosan nincs „a Control Center Slack-alkalmazásának telepítése” gomb. Egy megosztott Slack-alkalmazás telepítéséhez közös client secret kell (a Slacknek nincs PKCE-je), a Socket Mode pedig egy alkalmazás eseményeit véletlenszerűen osztja el a kapcsolatai között — így egyetlen közös alkalmazás a munkaterülete üzeneteit mások szervereire kézbesítené. Ezért minden munkaterület a saját alkalmazásával rendelkezik, és ez a három útvonal arról szól, hogy ez mennyire kevés munkájába kerül Önnek.
A. lehetőség: hagyja, hogy a Control Center hozza létre az alkalmazást
Szekció neve “A. lehetőség: hagyja, hogy a Control Center hozza létre az alkalmazást”- Hozzon létre egy alkalmazáskonfigurációs tokenpárt az api.slack.com/apps oldalon, és másolja ki a refresh tokent (
xoxe-…) - A Control Centerben lépjen a Beállítások → Munkaterület → Általános oldalra, és görgessen a Csevegőhidak kártyához
- A Slack blokkon kattintson az Alkalmazás létrehozása helyettem elemre
- Illessze be a tokent, módosítsa az alkalmazás nevét, a bot nevét, a leírásokat és a slash-parancsot, majd kattintson az Alkalmazás létrehozása elemre
- Kövesse a párbeszédablakban látható két hátralévő lépést, amelyek mindegyike a Slackbe mutató hivatkozás:
- Basic Information → App-Level Tokens: generáljon egy tokent a
connections:writehatókörrel (xapp-…) - Install App: telepítse a munkaterületre, és másolja ki a Bot User OAuth Token értékét (
xoxb-…)
- Basic Information → App-Level Tokens: generáljon egy tokent a
- Kattintson a Hitelesítő adatok beillesztése elemre, és folytassa a Csatlakoztatás szakasszal
A konfigurációs token minden használatkor rotálódik. A Control Center menet közben elmenti a rotált értéket, így soha többé nem kell beillesztenie.
B. lehetőség: hozza létre a Slackben, előre kitöltve
Szekció neve “B. lehetőség: hozza létre a Slackben, előre kitöltve”Ugyanaz az alkalmazás, konfigurációs token nélkül — a Slack a saját létrehozási képernyőjét adja Önnek, amelyen a teljes manifest már ki van töltve.
- A Control Centerben lépjen a Beállítások → Munkaterület → Általános oldalra, és görgessen a Csevegőhidak kártyához
- A Slack blokkon kattintson az Alkalmazás létrehozása helyettem elemre
- Módosítsa az alkalmazás nevét, a bot nevét, a leírásokat és a slash-parancsot — ezek a hivatkozással együtt utaznak
- Kattintson a Létrehozás a(z) Slack felületen elemre. A böngészője megnyitja a Slack alkalmazáslétrehozó oldalát az előre kitöltött konfigurációval
- Válassza ki a Slack-munkaterületet, és erősítse meg. A hatókörök, az események, a Socket Mode és a slash-parancs már helyes
- Visszatérve a Control Centerbe kövesse a párbeszédablakban látható két hátralévő lépést:
- Basic Information → App-Level Tokens: generáljon egy tokent a
connections:writehatókörrel (xapp-…) - Install App: telepítse a munkaterületre, és másolja ki a Bot User OAuth Token értékét (
xoxb-…)
- Basic Information → App-Level Tokens: generáljon egy tokent a
- Kattintson a Hitelesítő adatok beillesztése elemre, és folytassa a Csatlakoztatás szakasszal
A Slack nem jelenti, melyik alkalmazást hozta létre, így a Control Center nem tudja meg az alkalmazásazonosítót, és a 6. lépés hivatkozásai az alkalmazáslistájára visznek, nem közvetlenül arra az alkalmazásra. A Bot testreszabása funkcióhoz konfigurációs token kell.
C. lehetőség: építse fel az alkalmazást saját maga
Szekció neve “C. lehetőség: építse fel az alkalmazást saját maga”Hozzon létre egy alkalmazást az api.slack.com/apps oldalon, majd állítsa be a következőképpen.
Socket Mode: engedélyezze, és hagyjon minden kérés URL-t üresen. A Slack elutasítja azt a manifestet, amely egyszerre kér Socket Mode-ot és webhookos kézbesítést.
Bot token hatókörök (OAuth & Permissions):
app_mentions:readassistant:writechannels:historychat:writecommandsgroups:historyim:historyusers:readusers:read.emailEseményfeliratkozások (botesemények):
app_home_openedapp_mentionmessage.channelsmessage.groupsmessage.imA message.channels és a message.groups teszi lehetővé, hogy egy válasz működjön egy már áthidalt Slack-szálban. Nélkülük csak az első említés érkezik meg.
Slash parancs: /cc (bármilyen név működik — a híd azt a parancsot használja, amellyel utoljára meghívták).
App Home: engedélyezze a Messages lapot, és hagyja írhatónak, hogy a tagok közvetlen üzenetet küldhessenek a botnak.
Tokenek: generáljon egy alkalmazásszintű tokent a connections:write hatókörrel, majd telepítse az alkalmazást, és másolja ki a bot user OAuth tokent.
Csatlakoztatás
Szekció neve “Csatlakoztatás”- Lépjen a Beállítások → Munkaterület → Általános oldalra, és görgessen a Csevegőhidak kártyához
- A Slack blokkon kattintson a Slack csatlakoztatása elemre
- Töltse ki a mezőket:
| Mező | Érték | Hol található a Slackben |
|---|---|---|
| Bot user OAuth token | xoxb-… |
OAuth & Permissions → Bot User OAuth Token |
| Alkalmazásszintű token | xapp-… |
Basic Information → App-Level Tokens (connections:write) |
| Alkalmazáskonfigurációs refresh token (nem kötelező) | xoxe-… |
Az alkalmazáskonfigurációs tokenpár az api.slack.com/apps oldalon |
Az egyes értékek előtagját mindkét oldalon ellenőrzik, mielőtt bármi elküldésre kerülne, így a rossz mezőbe beillesztett értéket mindkét esetben ugyanazzal a mondattal utasítja el.
- Kattintson a Csatlakozás elemre
A Control Center a Slack auth.test hívásával ellenőrzi a bot tokent, mielőtt bármit tárolna, így egy elírásról Ön értesül, ahelyett hogy egy csendben soha nem működő socketé válna. Az alkalmazásszintű tokent csak a socket megnyitása bizonyíthatja, így egy hibás token egy pillanattal később kapcsolódási hibaként jelenik meg ugyanabban a sorban.
Az opcionális alkalmazáskonfigurációs token nélkül a kapcsolat jól működik — csak a botot nem tudja szerkeszteni a Control Centerből.
Mit tesz a csatlakoztatás
Szekció neve “Mit tesz a csatlakoztatás”- A hitelesítő adatokat a munkaterület saját könyvtárában tárolja, az adatbázisa mellett, csak a tulajdonos által olvasható módon. Soha nem jutnak vissza egy klienshez
- Egy Socket Mode-kapcsolatot nyit ehhez a munkaterülethez, és elkezdi fogadni az említéseket, a Slack-szálválaszokat, a közvetlen üzeneteket és a slash-parancsokat
- Újra előkészíti az összes korábban áthidalt Slack-szálat, így az újracsatlakozás folytatja a meglévő beszélgetéseket, ahelyett hogy magukra hagyná őket
- Semmibe nem kerül azoknak a munkaterületeknek, amelyeknek nincs csevegőalkalmazásuk: nincs socket, nincs időzítő, nincs forgalom
Ellenőrzés
Szekció neve “Ellenőrzés”A Slack sor egy állapotcímkét mutat: Élő, Csatlakozás…, Kapcsolódási hiba (mellette a Slack saját hibaüzenetével) vagy Nincs csatlakoztatva. A teljes folyamat ellenőrzéséhez:
- A Slackben hívja meg a botot egy csatornába:
/invite @your-bot-name - Említse meg egy kéréssel
- Megjelenik egy Slack-szálválasz, és egy hozzá tartozó tér jelenik meg a Control Centerben
Ezután minden tag, aki használni szeretné a hidat, összekapcsolja a saját fiókját — lásd: Slack-fiók összekapcsolása.
Hogyan néz ki egy válasz a Slackben
Szekció neve “Hogyan néz ki egy válasz a Slackben”A streamelt szavak fölött egyetlen csoportosított kártya áll, lépésenként egy sorral. A beállítás egyetlen sor, amelynek címe Working on it…, majd Cloning …, végül Starting the agent…. A gondolkodás hozzáad egy Thinking… sort; amikor az a lépés befejeződik, egy rövid gondolat jelenhet meg rajta. Minden eszköz a saját sorát kapja (Read lib/main.dart). A válasz a kártya alatt egyszerű szövegként érkezik. A kártya akkor vált készre, amikor a kör befejeződik, és hibásra, amikor a futás meghiúsult, megszakadt vagy elérte a körkorlátját.
A kártya abban a pillanatban indul, amikor a bot elfogadja az említést — Working on it… —, így a Slack-szál nem marad néma, amíg a munkaterület még épül. Az első említése egy Slack-csatornában hozza létre a beszélgetést, amely klónozza azokat a repókat, amelyekben az ügynök dolgozik, így az a beállítássor ezt írja: Cloning acme/widgets…, majd Setting up Reviewer…, majd Starting the agent…, végül egy Thinking… sor, amint az ügynök ténylegesen gondolkodik. Egy nagy repóban az első beállítás eltart egy darabig; a kártya mutatja, hogy dolgozik, nem pedig figyelmen kívül hagyja Önt. A későbbi említések ugyanabban a Slack-szálban továbbra is a Working on it… üzenettel nyitnak, majd kihagyják a klónozási lépéseket, mert a munkaterület már ott van.
A gondolkodás szövegfalként és az eszközkimenet soha nem hagyja el a Control Centert — a Thinking… sorban megjelenő gondolat egy rövid sor, nem átirat. A kártyán a View in Control Center megnyitja a teljes beszélgetést az asztali alkalmazásban — a hivatkozás a saját Control Center-szerverére mutat, amely átadja a böngészőt az alkalmazásnak.
Ha a kattintáskor semmi nem történik, akkor az üzenetet küldő szerver nem érhető el arról a gépről, amelyen kattintott (például egy csak loopbacken elérhető szerver, amelyre telefonról kattintott), vagy a Control Center nem fut ott. Egy elérhető címmel nem rendelkező szerver gomb nélküli kártyát küld, nem olyat, amely sehová sem vezet.
Token rotálása
Szekció neve “Token rotálása”Illessze be újra az új értéket a csatlakozási párbeszédablakban, és kattintson a Csatlakozás elemre. A csatlakoztatás lecseréli a munkaterülethez éppen futó kapcsolatot, így a socket az új hitelesítő adatokkal tárcsázódik újra.
A két kötelező tokennek minden csatlakozáskor jelen kell lennie. Az opcionális alkalmazáskonfigurációs token megőrzi a tárolt értékét, ha üresen hagyja a mezőt, így egy bot token rotálása soha nem kerül az alkalmazás szerkesztésének képességébe.
Leválasztás
Szekció neve “Leválasztás”Kattintson a Leválasztás elemre a Slack sorban (csak adminok). A socket bezárul, és a hitelesítő adatok feledésbe merülnek.
A tér- és felhasználóhivatkozások szándékosan megmaradnak: ugyanazon alkalmazás újracsatlakoztatása visszaállít minden áthidalt Slack-szálat. Ezek munkaterület-hatókörű sorok, így a munkaterület törlése úgyis eltávolítja őket.
Hibaelhárítás
Szekció neve “Hibaelhárítás”A sor ezt írja: „Kapcsolódási hiba”
Szekció neve “A sor ezt írja: „Kapcsolódási hiba””Olvassa el a címke mellett látható hibát. Egy elutasított hitelesítő adat (invalid_auth, not_authed, token_revoked, account_inactive) végleges — a híd leállítja az újrapróbálkozást, és új tokenekre vár, mert egy visszavont token örökös újrapróbálása csak sebességkorlátozást von maga után. Illessze be újra a tokeneket a csatlakozási párbeszédablakban.
A missing_scope hiba azt jelenti, hogy az alkalmazás kevesebb hatókörrel van telepítve, mint amennyire a hídnak szüksége van. Adja hozzá a hiányzó hatókört, telepítse újra az alkalmazást a Slackben, majd csatlakozzon újra.
Bármi átmeneti (egy megszakadt socket, egy Slack-buklás) magától újracsatlakozik, exponenciális visszalépéssel, legfeljebb 30 másodpercig, és a Slack rutin socketrotációja nem növeli ezt a visszalépést.
A bot nem válaszol egy említésre
Szekció neve “A bot nem válaszol egy említésre”- Benne van a bot a csatornában? A Slack csak azoknak az alkalmazásoknak kézbesíti a csatornaüzeneteket, amelyek tagok. Futtassa a
/invite @your-bot-nameparancsot - Össze van kapcsolva? Az össze nem kapcsolt tag abban a Slack-szálban kap választ, amely elmagyarázza az összekapcsolást. Lásd: Slack-fiók összekapcsolása
- Tagja a munkaterületnek írási jogosultságú szerepkörrel? A
viewerésguestszerepkörűnek azt mondja, hogy a szerepköre csak olvasható. A híd soha nem indít munkát olyasvalaki nevében, akit nem tud azonosítani - Van a munkaterületen ügynök? Ügynökök nélkül az üzenet eltárolódik, de nincs, aki válaszoljon rá
Egy csatornában válaszol, de a sima üzeneteket figyelmen kívül hagyja
Szekció neve “Egy csatornában válaszol, de a sima üzeneteket figyelmen kívül hagyja”Ez szándékos. Közvetlen üzeneten kívül a híd csak arra az üzenetre cselekszik, amely megemlíti a botot, vagy egy olyan Slack-szálban lévő válaszra, amely már az övé. Minden más mások beszélgetése.
A válaszok streamelés helyett egyetlen nagy üzenetként érkeznek
Szekció neve “A válaszok streamelés helyett egyetlen nagy üzenetként érkeznek”A sor ezt írja: „Az élő streamelés ki van kapcsolva ehhez a Slack-alkalmazáshoz — a válaszok egy üzenetként érkeznek.” A Slack streamelt válaszaihoz az Agents & AI Apps funkció kell fizetős csomagon; amikor a Slack elutasítja, a híd a kapcsolat hátralévő élettartamára felhagy a kéréssel, és teljes válaszokat tesz közzé. Semmi nem vész el — a teljes átirat mindig a Control Centerben van.
A streameléshez Slack-szálhorgony is kell, így az a válasz, amelynek nincs Slack-szála, ahol növekedhet, egészben kerül ki. A feladatkártya így is megérkezik: egy teljes válasznál ugyanazon az üzeneten utazik, már készen.
A válasz fölött nincs kártya
Szekció neve “A válasz fölött nincs kártya”A Slack feladatkártyái ugyanannak az új Agents & AI Apps felületnek a részei, mint a streamelés, és a Slack csak híváskor utasítja el. Amikor ezt teszi, a Control Center megtartja a választ, és a kapcsolat hátralévő élettartamára elejti a kártyát — egy állapotsor nélküli válasz többet ér, mint egy válasz nélküli állapotsor.
„A Control Centernek alkalmazáskonfigurációs tokenre van szüksége a bot szerkesztéséhez”
Szekció neve “„A Control Centernek alkalmazáskonfigurációs tokenre van szüksége a bot szerkesztéséhez””A Bot testreszabása sor le van tiltva, mert a kapcsolatnak nincs alkalmazáskonfigurációs tokenje. Ez egy kézzel vagy a Létrehozás a(z) Slack felületen lehetőséggel készült alkalmazásnál várható — a Slack soha nem mondta meg a Control Centernek, melyik alkalmazásról van szó. Hozzon létre egy tokenpárt az api.slack.com/apps oldalon, és csatlakozzon újra kitöltött refresh tokennel.
Egy hosszú válasz levágódik
Szekció neve “Egy hosszú válasz levágódik”A Slack egyetlen üzenetet 40 000 karakterre korlátoz, így a híd 39 000-nél levágja, és egy a Control Centerre mutató hivatkozást fűz hozzá — egy rövidített válasz többet ér, mint egy, amelyet a Slack egyenesen elutasít. A teljes szöveg mindig a tér átiratában van.