Configurează integrarea Slack
Acest ghid arată cum să conectezi Slack la un spațiu de lucru Control Center, fie lăsând Control Center să creeze aplicația, fie construind-o tu.
Pentru o primă rulare ghidată, vezi Conectează Slack la spațiul tău de lucru.
Cerințe preliminare
Secțiune intitulată „Cerințe preliminare”- Rolul
ownersauadminîn spațiul de lucru Control Center — conectarea unei aplicații de chat este o modificare a setărilor spațiului de lucru - Permisiunea de a crea și instala aplicații în spațiul de lucru Slack
- Nimic accesibil public: conexiunea este spre exterior (Socket Mode), așa că serverul nu are nevoie de port de intrare, tunel sau domeniu
Trei moduri de a obține aplicația
Secțiune intitulată „Trei moduri de a obține aplicația”| Cale | Tu oferi | Control Center face |
|---|---|---|
| Ghidat | Un token de configurare a aplicației (xoxe-…) |
Creează aplicația cu scope-urile, evenimentele, Socket Mode și comanda slash potrivite; îți înmânează cei doi pași pentru care Slack nu are API |
| Creează în Slack | Nimic | Deschide Slack cu aceeași configurație precompletată; alegi un spațiu de lucru și confirmi |
| Manual | Tokenurile aplicației finalizate | Le verifică și se conectează |
Calea ghidată este singura care lasă aplicația și administrabilă din Control Center, ceea ce face posibilă Personalizează botul de chat. O aplicație creată prin Creează în Slack poate fi promovată ulterior la una administrată, lipind un token de configurare în dialogul de conectare.
Nu există în mod deliberat niciun buton „instalează aplicația Slack a Control Center”. Instalarea unei aplicații Slack distribuite necesită un client secret partajat (Slack nu are PKCE), iar Socket Mode distribuie aleatoriu evenimentele unei aplicații între conexiunile sale — așa că o singură aplicație partajată ar livra mesajele spațiului tău de lucru serverelor altor persoane. Prin urmare, fiecare spațiu de lucru își deține propria aplicație, iar aceste trei căi arată cât de puțină muncă te costă.
Opțiunea A: lasă Control Center să creeze aplicația
Secțiune intitulată „Opțiunea A: lasă Control Center să creeze aplicația”- Generează o pereche de tokenuri de configurare a aplicației la api.slack.com/apps și copiază tokenul de reîmprospătare (
xoxe-…) - În Control Center, mergi la Setări → Spațiu de lucru → General și derulează până la cardul Punți de chat
- În blocul Slack, apasă Creează aplicația pentru mine
- Lipește tokenul, ajustează numele aplicației, numele botului, descrierile și comanda slash, apoi apasă Creează aplicația
- Urmează cei doi pași rămași afișați de dialog, fiecare sub forma unui link către Slack:
- Basic Information → App-Level Tokens: generează un token cu scope-ul
connections:write(xapp-…) - Install App: instalează-l în spațiul de lucru și copiază Bot User OAuth Token (
xoxb-…)
- Basic Information → App-Level Tokens: generează un token cu scope-ul
- Apasă Lipește datele de autentificare și continuă cu Conectare
Tokenul de configurare se rotește la fiecare utilizare. Control Center stochează pe parcurs valoarea rotită, așa că nu mai trebuie să o lipești din nou.
Opțiunea B: creeaz-o în Slack, precompletată
Secțiune intitulată „Opțiunea B: creeaz-o în Slack, precompletată”Aceeași aplicație, fără token de configurare — Slack îți oferă propriul ecran de creare, cu întregul manifest deja completat.
- În Control Center, mergi la Setări → Spațiu de lucru → General și derulează până la cardul Punți de chat
- În blocul Slack, apasă Creează aplicația pentru mine
- Ajustează numele aplicației, numele botului, descrierile și comanda slash — acestea călătoresc împreună cu linkul
- Apasă Creează în Slack. Browserul tău deschide pagina de creare a aplicației din Slack, cu configurația precompletată
- Alege spațiul de lucru Slack și confirmă. Scope-urile, evenimentele, Socket Mode și comanda slash sunt deja corecte
- Înapoi în Control Center, urmează cei doi pași rămași afișați de dialog:
- Basic Information → App-Level Tokens: generează un token cu scope-ul
connections:write(xapp-…) - Install App: instalează-l în spațiul de lucru și copiază Bot User OAuth Token (
xoxb-…)
- Basic Information → App-Level Tokens: generează un token cu scope-ul
- Apasă Lipește datele de autentificare și continuă cu Conectare
Slack nu raportează ce aplicație a creat, așa că Control Center nu află id-ul aplicației, iar linkurile de la pasul 6 duc la lista ta de aplicații, nu direct la acea aplicație. Personalizează botul are nevoie de un token de configurare.
Opțiunea C: construiește singur aplicația
Secțiune intitulată „Opțiunea C: construiește singur aplicația”Creează o aplicație la api.slack.com/apps, apoi configureaz-o după cum urmează.
Socket Mode: activează-l și lasă fiecare request URL gol. Slack respinge un manifest care cere atât Socket Mode, cât și livrare prin webhook.
Scope-urile tokenului de bot (OAuth & Permissions):
app_mentions:readassistant:writechannels:historychat:writecommandsgroups:historyim:historyusers:readusers:read.emailAbonamente la evenimente (evenimente de bot):
app_home_openedapp_mentionmessage.channelsmessage.groupsmessage.immessage.channels și message.groups sunt cele care fac să funcționeze un răspuns într-un fir Slack deja conectat. Fără ele, doar prima mențiune ajunge vreodată.
Comandă slash: /cc (orice nume funcționează — puntea folosește comanda cu care a fost invocată ultima dată).
App Home: activează fila Messages și lasă-o editabilă, ca membrii să îi poată scrie botului în mesaj direct.
Tokenuri: generează un token la nivel de aplicație cu connections:write, apoi instalează aplicația și copiază tokenul OAuth de utilizator bot.
Conectare
Secțiune intitulată „Conectare”- Mergi la Setări → Spațiu de lucru → General și derulează până la cardul Punți de chat
- În blocul Slack, apasă Conectează Slack
- Completează câmpurile:
| Câmp | Valoare | Unde se află în Slack |
|---|---|---|
| Token OAuth de utilizator bot | xoxb-… |
OAuth & Permissions → Bot User OAuth Token |
| Token la nivel de aplicație | xapp-… |
Basic Information → App-Level Tokens (connections:write) |
| Token de reîmprospătare a configurației aplicației (opțional) | xoxe-… |
Perechea de tokenuri de configurare a aplicației de pe api.slack.com/apps |
Prefixul fiecărei valori este verificat pe ambele părți înainte de a se trimite ceva, așa că o valoare lipită în caseta greșită este refuzată cu aceeași propoziție în ambele cazuri.
- Apasă Conectează
Control Center verifică tokenul de bot cu auth.test de la Slack înainte de a stoca ceva, așa că o greșeală de tastare îți este raportată, în loc să devină un socket care nu funcționează niciodată în tăcere. Tokenul la nivel de aplicație poate fi dovedit doar deschizând socketul, așa că unul prost apare o clipă mai târziu ca eroare de conexiune pe același rând.
Fără tokenul opțional de configurare a aplicației, conexiunea funcționează fără probleme — pur și simplu nu poți edita botul din Control Center.
Ce face conectarea
Secțiune intitulată „Ce face conectarea”- Stochează credențialele în directorul propriu al spațiului de lucru, lângă baza de date, lizibile doar de proprietar. Ele nu ajung niciodată înapoi la un client
- Deschide o conexiune Socket Mode pentru acest spațiu de lucru și începe să primească mențiuni, răspunsuri în fire Slack, mesaje directe și comenzi slash
- Reactivează fiecare fir Slack conectat anterior, așa că o reconectare continuă conversațiile existente în loc să le abandoneze
- Nu costă nimic pentru spațiile de lucru care nu au aplicație de chat: niciun socket, niciun cronometru, niciun trafic
Verificare
Secțiune intitulată „Verificare”Rândul Slack afișează o etichetă de stare: Live, Se conectează…, Eroare de conexiune (cu eroarea proprie a Slack alături) sau Neconectat. Pentru o verificare de la un capăt la altul:
- În Slack, invită botul într-un canal:
/invite @your-bot-name - Menționează-l cu o cerere
- Apare un răspuns în firul Slack și apare un spațiu corespunzător în Control Center
Fiecare membru care vrea să folosească puntea își leagă apoi propriul cont — vezi Leagă contul tău Slack.
Cum arată un răspuns în Slack
Secțiune intitulată „Cum arată un răspuns în Slack”Deasupra cuvintelor transmise în flux stă un singur card grupat, cu un rând per pas. Configurarea inițială este un rând al cărui titlu trece de la Working on it… la Cloning …, apoi la Starting the agent…. Raționamentul adaugă un rând Thinking…; când acel pas se termină, pe el poate apărea un gând scurt. Fiecare instrument are propriul rând (Read lib/main.dart). Răspunsul sosește ca text obișnuit sub card. Cardul devine complet când tura se termină și în eroare când rularea a eșuat, a fost întreruptă sau și-a atins limita de ture.
Cardul pornește în momentul în care botul acceptă mențiunea — Working on it… —, așa că firul Slack nu tace cât timp spațiul de lucru este încă în construcție. Prima ta mențiune într-un canal Slack creează conversația, care clonează repo-urile în care lucrează agentul, așa că acel rând de configurare afișează apoi Cloning acme/widgets…, apoi Setting up Reviewer…, apoi Starting the agent…, iar apoi un rând Thinking… de îndată ce agentul chiar raționează. Pe un depozit mare, acea primă configurare durează ceva; cardul este felul în care îți dai seama că lucrează, în loc să te ignore. Mențiunile ulterioare din același fir Slack se deschid tot cu Working on it…, apoi sar peste pașii de clonare, pentru că spațiul de lucru există deja.
Raționamentul ca un perete de text și ieșirea instrumentelor nu părăsesc niciodată Control Center — gândul de pe rândul Thinking… este o linie scurtă, nu un transcript. View in Control Center de pe card deschide conversația completă în aplicația de desktop — linkul duce la propriul tău server Control Center, care predă browserul aplicației.
Dacă nu se întâmplă nimic când apeși pe el, serverul care a trimis mesajul nu este accesibil de pe mașina de pe care ai apăsat (de exemplu, un server doar pe loopback, apăsat de pe un telefon) sau Control Center nu rulează acolo. Un server fără o adresă accesibilă trimite un card fără buton, în loc de unul care nu duce nicăieri.
Rotește un token
Secțiune intitulată „Rotește un token”Lipește din nou valoarea nouă în dialogul de conectare și apasă Conectează. Conectarea înlocuiește orice conexiune care rula pentru acest spațiu de lucru, așa că socketul este refăcut cu noile credențiale.
Cele două tokenuri obligatorii trebuie să fie prezente la fiecare conectare. Tokenul opțional de configurare a aplicației își păstrează valoarea stocată când lași caseta goală, așa că rotirea unui token de bot nu te costă niciodată capacitatea de a edita aplicația.
Deconectare
Secțiune intitulată „Deconectare”Apasă Deconectează pe rândul Slack (doar administratorii). Socketul se închide și credențialele sunt uitate.
Legăturile de spații și de utilizatori supraviețuiesc în mod deliberat: reconectarea aceleiași aplicații restaurează fiecare fir Slack conectat. Ele sunt rânduri limitate la spațiul de lucru, așa că ștergerea spațiului de lucru le elimină oricum.
Depanare
Secțiune intitulată „Depanare”Rândul spune „Eroare de conexiune”
Secțiune intitulată „Rândul spune „Eroare de conexiune””Citește eroarea afișată lângă etichetă. O credențială respinsă (invalid_auth, not_authed, token_revoked, account_inactive) este definitivă — puntea nu mai reîncearcă și așteaptă tokenuri noi, pentru că a reîncerca la nesfârșit un token revocat doar te supune la rate-limit. Lipește din nou tokenurile în dialogul de conectare.
O eroare missing_scope înseamnă că aplicația este instalată cu mai puține scope-uri decât are nevoie puntea. Adaugă scope-ul lipsă, reinstalează aplicația în Slack, apoi reconectează.
Orice problemă trecătoare (un socket căzut, o bâlbâială a Slack) se reconectează singură, cu backoff exponențial plafonat la 30 de secunde, iar rotația obișnuită de socket a Slack nu escaladează acel backoff.
Botul nu răspunde la o mențiune
Secțiune intitulată „Botul nu răspunde la o mențiune”- Este botul în canal? Slack livrează mesajele de canal doar aplicațiilor care sunt membre. Rulează
/invite @your-bot-name - Ești legat? Un membru nelegat primește un răspuns în acel fir Slack, care explică cum să se lege. Vezi Leagă contul tău Slack
- Ești membru al spațiului de lucru cu un rol de scriere? Unui
viewersauguesti se spune că rolul lui este doar de citire. Puntea nu începe niciodată o muncă în numele cuiva pe care nu îl poate atribui - Are spațiul de lucru vreun agent? Fără agenți, mesajul este stocat, dar nu are cine să răspundă la el
Răspunde într-un canal, dar ignoră mesajele simple
Secțiune intitulată „Răspunde într-un canal, dar ignoră mesajele simple”Este intenționat. În afara unui mesaj direct, puntea acționează doar asupra unui mesaj care menționează botul sau a unui răspuns într-un fir Slack pe care îl deține deja. Orice altceva este conversația altor persoane.
Răspunsurile sosesc ca un singur mesaj mare, în loc să fie transmise în flux
Secțiune intitulată „Răspunsurile sosesc ca un singur mesaj mare, în loc să fie transmise în flux”Rândul spune „Streamingul live este oprit pentru această aplicație Slack — răspunsurile sosesc ca un singur mesaj.” Răspunsurile în streaming ale Slack au nevoie de funcția Agents & AI Apps pe un plan plătit; când Slack o refuză, puntea nu mai cere acest lucru pentru restul vieții acelei conexiuni și postează în schimb răspunsuri întregi. Nu se pierde nimic — transcriptul complet este mereu în Control Center.
Streamingul are nevoie și de un punct de ancorare în firul Slack, așa că un răspuns care nu are un fir Slack în care să crească este postat întreg. Cardul de sarcină sosește oricum în ambele cazuri: la un răspuns întreg, el călătorește pe același mesaj, deja complet.
Răspunsul nu are niciun card deasupra
Secțiune intitulată „Răspunsul nu are niciun card deasupra”Cardurile de sarcină ale Slack fac parte din aceeași suprafață nouă Agents & AI Apps ca streamingul, iar Slack refuză doar în momentul apelului. Când o face, Control Center păstrează răspunsul și renunță la card pentru restul vieții acelei conexiuni — un răspuns fără linie de stare întrece o linie de stare fără răspuns.
„Control Center are nevoie de un token de configurare a aplicației ca să editeze botul”
Secțiune intitulată „„Control Center are nevoie de un token de configurare a aplicației ca să editeze botul””Rândul Personalizează botul este dezactivat pentru că această conexiune nu are un token de configurare a aplicației. Acest lucru este normal pentru o aplicație creată manual sau prin Creează în Slack — Slack nu i-a spus niciodată Control Center care este aplicația. Generează o pereche de tokenuri pe api.slack.com/apps și reconectează cu tokenul de reîmprospătare completat.
Un răspuns lung este trunchiat
Secțiune intitulată „Un răspuns lung este trunchiat”Slack plafonează un singur mesaj la 40.000 de caractere, așa că puntea trunchiază la 39.000 și adaugă o trimitere la Control Center — un răspuns scurtat întrece unul pe care Slack îl respinge de tot. Textul complet este mereu în transcriptul spațiului.