Konfigurera Slack-integration
Den här guiden visar hur du ansluter Slack till en arbetsyta i Control Center, antingen genom att låta Control Center skapa appen eller genom att bygga den själv.
För en guidad första körning, se Koppla Slack till din arbetsyta.
Förutsättningar
Avsnitt med rubriken “Förutsättningar”- Rollen
ownerelleradmini Control Center-arbetsytan — att ansluta en chattapp är en ändring av arbetsytans inställningar - Behörighet att skapa och installera appar i Slack-arbetsytan
- Inget som behöver vara nåbart utifrån: anslutningen är utgående (Socket Mode), så servern behöver ingen inkommande port, tunnel eller domän
Tre vägar till appen
Avsnitt med rubriken “Tre vägar till appen”| Väg | Du bidrar med | Control Center gör |
|---|---|---|
| Guidad | Ett par tokens för appkonfiguration (xoxe-…) |
Skapar appen med rätt omfång, händelser, Socket Mode och slash-kommando; ger dig de två steg Slack inte har något API för |
| Skapa i Slack | Ingenting | Öppnar Slack med samma konfiguration ifylld; du väljer en arbetsyta och bekräftar |
| För hand | Den färdiga appens tokens | Verifierar dem och ansluter |
Den guidade vägen är den enda som också lämnar appen hanterbar från Control Center, och det är den som möjliggör Anpassa chattboten. En app som skapats med Skapa i Slack kan senare befordras till en hanterad genom att klistra in ett token för appkonfiguration i anslutningsdialogen.
Det finns medvetet ingen knapp för ”installera Control Centers Slack-app”. Att installera en distribuerad Slack-app kräver en delad klienthemlighet (Slack har ingen PKCE), och Socket Mode fördelar en apps händelser slumpmässigt över dess anslutningar — en delad app skulle alltså leverera din arbetsytas meddelanden till andra människors servrar. Varje arbetsyta äger därför sin egen app, och de här tre vägarna handlar om hur lite arbete det kostar dig.
Alternativ A: låt Control Center skapa appen
Avsnitt med rubriken “Alternativ A: låt Control Center skapa appen”- Generera ett par tokens för appkonfiguration på api.slack.com/apps och kopiera refresh-token (
xoxe-…) - Gå i Control Center till Inställningar → Arbetsyta → Allmänt och rulla ned till kortet Chattbryggor
- I Slack-blocket klickar du på Skapa app åt mig
- Klistra in token, justera appnamn, botnamn, beskrivningar och slash-kommando och klicka sedan på Skapa app
- Följ de två återstående stegen dialogen visar, vart och ett som en länk in i Slack:
- Basic Information → App-Level Tokens: generera en token med omfånget
connections:write(xapp-…) - Install App: installera i arbetsytan och kopiera Bot User OAuth Token (
xoxb-…)
- Basic Information → App-Level Tokens: generera en token med omfånget
- Klicka på Klistra in inloggningsuppgifterna och fortsätt med Anslut
Konfigurationstoken roterar vid varje användning. Control Center sparar det roterade värdet allteftersom, så du behöver aldrig klistra in det igen.
Alternativ B: skapa den i Slack, ifylld i förväg
Avsnitt med rubriken “Alternativ B: skapa den i Slack, ifylld i förväg”Samma app, inget token för appkonfiguration — Slack visar dig sin egen skaparskärm med hela manifestet redan ifyllt.
- Gå i Control Center till Inställningar → Arbetsyta → Allmänt och rulla ned till kortet Chattbryggor
- I Slack-blocket klickar du på Skapa app åt mig
- Justera appnamn, botnamn, beskrivningar och slash-kommando — de följer med länken
- Klicka på Skapa i Slack. Webbläsaren öppnar Slacks sida för att skapa appar med konfigurationen ifylld
- Välj Slack-arbetsyta och bekräfta. Omfången, händelserna, Socket Mode och slash-kommandot är redan korrekta
- Tillbaka i Control Center följer du de två återstående stegen dialogen visar:
- Basic Information → App-Level Tokens: generera en token med omfånget
connections:write(xapp-…) - Install App: installera i arbetsytan och kopiera Bot User OAuth Token (
xoxb-…)
- Basic Information → App-Level Tokens: generera en token med omfånget
- Klicka på Klistra in inloggningsuppgifterna och fortsätt med Anslut
Slack rapporterar inte vilken app den skapade, så Control Center får aldrig veta app-id:t och länkarna i steg 6 går till din applista i stället för direkt till den appen. Anpassa bot kräver ett token för appkonfiguration.
Alternativ C: bygg appen själv
Avsnitt med rubriken “Alternativ C: bygg appen själv”Skapa en app på api.slack.com/apps och ställ sedan in den så här.
Socket Mode: aktivera det och lämna varje request-URL tom. Slack avvisar ett manifest som begär både Socket Mode och webhook-leverans.
Behörighetsomfång för bot-token (OAuth & Permissions):
app_mentions:readassistant:writechannels:historychat:writecommandsgroups:historyim:historyusers:readusers:read.emailHändelseprenumerationer (bot-händelser):
app_home_openedapp_mentionmessage.channelsmessage.groupsmessage.immessage.channels och message.groups är det som får ett svar inne i en redan bryggad Slack-tråd att fungera. Utan dem kommer bara den första omnämningen någonsin fram.
Slash-kommando: /cc (vilket namn som helst fungerar — bryggan använder det kommando den senast anropades med).
App Home: aktivera fliken Messages och låt den vara skrivbar, så att medlemmar kan skicka direktmeddelanden till boten.
Tokens: generera en token på appnivå med connections:write, installera sedan appen och kopiera bot-användarens OAuth-token.
- Gå till Inställningar → Arbetsyta → Allmänt och rulla ned till kortet Chattbryggor
- I Slack-blocket klickar du på Anslut Slack
- Fyll i fälten:
| Fält | Värde | Var det finns i Slack |
|---|---|---|
| Bot-token | xoxb-… |
OAuth & Permissions → Bot User OAuth Token |
| Appnivå-token | xapp-… |
Basic Information → App-Level Tokens (connections:write) |
| Token för appkonfiguration (valfritt) | xoxe-… |
Paret tokens för appkonfiguration på api.slack.com/apps |
Prefixet för varje värde kontrolleras på båda sidor innan något skickas, så ett värde som klistras in i fel ruta avvisas med samma mening oavsett håll.
- Klicka på Anslut
Control Center verifierar bot-token med Slacks auth.test innan något sparas, så ett skrivfel rapporteras till dig i stället för att bli en socket som tyst aldrig fungerar. En token på appnivå kan bara bevisas genom att socketen öppnas, så en felaktig sådan dyker upp en stund senare som ett anslutningsfel på samma rad.
Utan det valfria tokenet för appkonfiguration fungerar anslutningen utmärkt — du kan bara inte redigera boten från Control Center.
Vad anslutningen gör
Avsnitt med rubriken “Vad anslutningen gör”- Sparar inloggningsuppgifterna i arbetsytans egen katalog, bredvid dess databas, läsbara endast av ägaren. De färdas aldrig tillbaka till en klient
- Öppnar en Socket Mode-anslutning för den här arbetsytan och börjar ta emot omnämningar, svar i Slack-trådar, direktmeddelanden och slash-kommandon
- Återaktiverar varje Slack-tråd som bryggades tidigare, så att en återanslutning fortsätter befintliga samtal i stället för att lämna dem strandsatta
- Kostar ingenting för arbetsytor som inte har någon chattapp: ingen socket, inga timers, ingen trafik
Verifiera
Avsnitt med rubriken “Verifiera”Slack-raden visar en statustagg: Live, Ansluter…, Anslutningsfel (med Slacks eget fel bredvid) eller Inte ansluten. Så kontrollerar du hela vägen:
- Bjud i Slack in boten till en kanal:
/invite @your-bot-name - Nämn den med en begäran
- Ett svar i Slack-tråden dyker upp och en matchande yta dyker upp i Control Center
Varje medlem som vill använda bryggan länkar sedan sitt eget konto — se Länka ditt Slack-konto.
Hur ett svar ser ut i Slack
Avsnitt med rubriken “Hur ett svar ser ut i Slack”Ovanför de strömmade orden sitter ett grupperat kort med en rad per steg. Uppsättningen är en rad vars titel går från Working on it… till Cloning … till Starting the agent…. Resonemang lägger till en Thinking…-rad; när det steget är klart kan en kort tanke visas på den. Varje verktyg är en egen rad (Read lib/main.dart). Svaret kommer som vanlig text under kortet. Kortet blir slutfört när turen är slut och felmarkerat när körningen misslyckades, avbröts eller nådde sin tur-gräns.
Kortet börjar i samma stund som boten accepterar omnämningen — Working on it… — så att Slack-tråden inte är tyst medan arbetsytan fortfarande byggs. Din första omnämning i en Slack-kanal skapar samtalet, vilket klonar de repos agenten arbetar i, så den uppsättningsraden visar då Cloning acme/widgets…, sedan Setting up Reviewer…, sedan Starting the agent…, och därefter en Thinking…-rad när agenten faktiskt resonerar. I ett stort repository tar den första uppsättningen en stund; kortet är hur du kan se att den arbetar i stället för att ignorera dig. Senare omnämningar i samma Slack-tråd öppnar fortfarande med Working on it… och hoppar sedan över kloningsstegen eftersom arbetsytan redan finns.
Resonemang som en vägg av text och verktygsutdata lämnar aldrig Control Center — tanken på Thinking…-raden är en kort rad, inte en avskrift. View in Control Center på kortet öppnar hela samtalet i skrivbordsappen — länken går till din egen Control Center-server, som lämnar över webbläsaren till appen.
Händer inget när du klickar på den är servern som skickade meddelandet inte nåbar från maskinen du klickade på (en server som bara lyssnar på loopback, klickad från en telefon till exempel), eller så körs inte Control Center där. En server utan nåbar adress skickar ett kort utan knapp i stället för ett som inte leder någonstans.
Rotera en token
Avsnitt med rubriken “Rotera en token”Klistra in det nya värdet i anslutningsdialogen och klicka på Anslut. Att ansluta ersätter vilken anslutning som helst som kördes för den här arbetsytan, så socketen slås upp på nytt med de nya inloggningsuppgifterna.
De två obligatoriska tokens måste finnas vid varje anslutning. Det valfria tokenet för appkonfiguration behåller sitt sparade värde när du lämnar fältet tomt, så att rotera en bot-token kostar dig aldrig möjligheten att redigera appen.
Koppla från
Avsnitt med rubriken “Koppla från”Klicka på Koppla från på Slack-raden (endast admin). Socketen stängs och inloggningsuppgifterna glöms bort.
Yt- och användarlänkar överlever medvetet: att återansluta samma app återställer varje bryggad Slack-tråd. De är rader knutna till arbetsytan, så att ta bort arbetsytan tar bort dem ändå.
Felsökning
Avsnitt med rubriken “Felsökning”Raden säger ”Anslutningsfel”
Avsnitt med rubriken “Raden säger ”Anslutningsfel””Läs felet som visas bredvid taggen. En avvisad inloggningsuppgift (invalid_auth, not_authed, token_revoked, account_inactive) är slutgiltig — bryggan slutar försöka igen och väntar på nya tokens, för att försöka igen med en återkallad token i evighet ger bara hastighetsbegränsning. Klistra in tokens på nytt i anslutningsdialogen.
Ett missing_scope-fel betyder att appen är installerad med färre omfång än bryggan behöver. Lägg till det saknade omfånget, installera om appen i Slack och återanslut sedan.
Allt tillfälligt (en tappad socket, en Slack-hicka) återansluter av sig självt med exponentiell backoff begränsad till 30 sekunder, och Slacks rutinmässiga socketrotation trappar inte upp den backoffen.
Boten svarar inte på en omnämning
Avsnitt med rubriken “Boten svarar inte på en omnämning”- Finns boten i kanalen? Slack levererar bara kanalmeddelanden till appar som är medlemmar. Kör
/invite @your-bot-name - Är du länkad? En olänkad medlem får ett svar i den Slack-tråden som förklarar hur man länkar. Se Länka ditt Slack-konto
- Är du medlem i arbetsytan med en skrivande roll? En
viewerellerguestfår veta att rollen är skrivskyddad. Bryggan startar aldrig arbete åt någon den inte kan tillskriva - Har arbetsytan några agenter? Utan agenter sparas meddelandet men har ingen att svara
Den svarar i en kanal men ignorerar vanliga meddelanden
Avsnitt med rubriken “Den svarar i en kanal men ignorerar vanliga meddelanden”Det är avsiktligt. Utanför ett direktmeddelande agerar bryggan bara på ett meddelande som nämner boten, eller ett svar inne i en Slack-tråd den redan äger. Allt annat är andras samtal.
Svar kommer som ett enda stort meddelande i stället för att strömmas
Avsnitt med rubriken “Svar kommer som ett enda stort meddelande i stället för att strömmas”Raden säger ”Liveströmning är av för den här Slack-appen – svar kommer som ett meddelande.” Slacks strömmande svar kräver funktionen Agents & AI Apps i ett betalt abonnemang; när Slack nekar den slutar bryggan fråga för resten av den anslutningens livstid och postar hela svar i stället. Inget går förlorat — hela avskriften finns alltid i Control Center.
Strömning kräver också ett Slack-trådankare, så ett svar som inte har någon Slack-tråd att växa i postas i sin helhet. Uppgiftskortet kommer fortfarande fram oavsett: vid ett helt svar åker det med i samma meddelande, redan slutfört.
Svaret har inget kort ovanför sig
Avsnitt med rubriken “Svaret har inget kort ovanför sig”Slacks uppgiftskort är en del av samma nya yta Agents & AI Apps som strömningen, och Slack nekar först vid anropstillfället. När den gör det behåller Control Center svaret och släpper kortet för resten av den anslutningens livstid — ett svar utan statusrad slår en statusrad utan svar.
”Control Center behöver en token för appkonfiguration för att redigera boten”
Avsnitt med rubriken “”Control Center behöver en token för appkonfiguration för att redigera boten””Raden Anpassa bot är inaktiverad eftersom anslutningen inte har något token för appkonfiguration. Det är väntat för en app som skapats för hand eller via Skapa i Slack — Slack berättade aldrig för Control Center vilken app det är. Generera ett tokenpar på api.slack.com/apps och återanslut med refresh-tokenet ifyllt.
Ett långt svar klipps av
Avsnitt med rubriken “Ett långt svar klipps av”Slack begränsar ett enskilt meddelande till 40 000 tecken, så bryggan trunkerar vid 39 000 och lägger till en hänvisning till Control Center — ett förkortat svar slår ett som Slack avvisar helt. Hela texten finns alltid i ytans avskrift.