Tovább a tartalomhoz

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.

  • Az owner vagy admin szerepkö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”
  1. Hozzon létre egy alkalmazáskonfigurációs tokenpárt az api.slack.com/apps oldalon, és másolja ki a refresh tokent (xoxe-…)
  2. A Control Centerben lépjen a Beállítások → Munkaterület → Általános oldalra, és görgessen a Csevegőhidak kártyához
  3. A Slack blokkon kattintson az Alkalmazás létrehozása helyettem elemre
  4. 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
  5. 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:write hatókörrel (xapp-…)
    • Install App: telepítse a munkaterületre, és másolja ki a Bot User OAuth Token értékét (xoxb-…)
  6. 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.

  1. A Control Centerben lépjen a Beállítások → Munkaterület → Általános oldalra, és görgessen a Csevegőhidak kártyához
  2. A Slack blokkon kattintson az Alkalmazás létrehozása helyettem elemre
  3. 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
  4. 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
  5. 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
  6. 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:write hatókörrel (xapp-…)
    • Install App: telepítse a munkaterületre, és másolja ki a Bot User OAuth Token értékét (xoxb-…)
  7. 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:read
assistant:write
channels:history
chat:write
commands
groups:history
im:history
users:read
users:read.email

Eseményfeliratkozások (botesemények):

app_home_opened
app_mention
message.channels
message.groups
message.im

A 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.

  1. Lépjen a Beállítások → Munkaterület → Általános oldalra, és görgessen a Csevegőhidak kártyához
  2. A Slack blokkon kattintson a Slack csatlakoztatása elemre
  3. 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.

  1. 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.

  • 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

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:

  1. A Slackben hívja meg a botot egy csatornába: /invite @your-bot-name
  2. Említse meg egy kéréssel
  3. 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.

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.

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.

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.

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.

  • 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-name parancsot
  • Ö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 és guest szerepkö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 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.

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.