Gå til innholdet

Sett opp Slack-integrasjon

Denne guiden viser deg hvordan du kobler Slack til et Control Center-arbeidsområde, enten ved å la Control Center opprette appen eller ved å bygge den selv.

For en veiledet første gjennomkjøring, se Koble Slack til arbeidsområdet ditt.

  • Rollen owner eller admin i Control Center-arbeidsområdet — å koble til en chatapp er en endring i arbeidsområdeinnstillingene
  • Tillatelse til å opprette og installere apper i Slack-arbeidsområdet
  • Ingenting som må være offentlig tilgjengelig: tilkoblingen går utgående (Socket Mode), så serveren trenger ingen innkommende port, tunnel eller domene
Vei Du skaffer Control Center gjør
Veiledet Et appkonfigurasjonstoken (xoxe-…) Oppretter appen med riktige scope, hendelser, Socket Mode og skråstrekkommando; overlater til deg de to stegene Slack ikke har API for
Opprett i Slack Ingenting Åpner Slack med samme konfigurasjon forhåndsutfylt; du velger et arbeidsområde og bekrefter
For hånd Tokenene til den ferdige appen Verifiserer dem og kobler til

Den veiledede veien er den eneste som også gjør appen administrerbar fra Control Center, og det er dette som muliggjør Tilpass chatboten. En app opprettet med Opprett i Slack kan senere forfremmes til en administrert app ved å lime inn et konfigurasjonstoken i kobledialogen.

Det finnes bevisst ingen «installer Control Centers Slack-app»-knapp. Å installere en distribuert Slack-app krever en delt klienthemmelighet (Slack har ingen PKCE), og Socket Mode fordeler en apps hendelser tilfeldig på tvers av tilkoblingene — så én delt app ville levert arbeidsområdets meldinger til andre folks servere. Hvert arbeidsområde eier derfor sin egen app, og disse tre veiene handler om hvor lite arbeid det koster deg.

  1. Generer et tokenpar for appkonfigurasjon på api.slack.com/apps og kopier oppdateringstokenet (xoxe-…)
  2. I Control Center går du til Innstillinger → Arbeidsområde → Generelt og ruller ned til kortet Chat-broer
  3. I Slack-blokken klikker du på Opprett app for meg
  4. Lim inn tokenet, juster appnavnet, botnavnet, beskrivelsene og skråstrekkommandoen, og klikk deretter på Opprett app
  5. Følg de to gjenstående stegene dialogen viser, hvert av dem som en lenke inn i Slack:
    • Basic Information → App-Level Tokens: generer et token med connections:write-scope (xapp-…)
    • Install App: installer til arbeidsområdet og kopier Bot User OAuth Token (xoxb-…)
  6. Klikk på Lim inn påloggingsinformasjonen og fortsett med Koble til

Konfigurasjonstokenet roteres ved hver bruk. Control Center lagrer den roterte verdien underveis, så du slipper å lime den inn på nytt.

Alternativ B: opprett den i Slack, forhåndsutfylt

Seksjon med tittelen «Alternativ B: opprett den i Slack, forhåndsutfylt»

Samme app, uten konfigurasjonstoken — Slack gir deg sin egen opprettelsesskjerm med hele manifestet allerede utfylt.

  1. I Control Center går du til Innstillinger → Arbeidsområde → Generelt og ruller ned til kortet Chat-broer
  2. I Slack-blokken klikker du på Opprett app for meg
  3. Juster appnavnet, botnavnet, beskrivelsene og skråstrekkommandoen — disse følger med lenken
  4. Klikk på Opprett i Slack. Nettleseren åpner Slacks appopprettelsesside med konfigurasjonen forhåndsutfylt
  5. Velg Slack-arbeidsområdet og bekreft. Scope, hendelser, Socket Mode og skråstrekkommandoen er allerede riktige
  6. Tilbake i Control Center følger du de to gjenstående stegene dialogen viser:
    • Basic Information → App-Level Tokens: generer et token med connections:write-scope (xapp-…)
    • Install App: installer til arbeidsområdet og kopier Bot User OAuth Token (xoxb-…)
  7. Klikk på Lim inn påloggingsinformasjonen og fortsett med Koble til

Slack rapporterer ikke hvilken app den opprettet, så Control Center får ikke vite app-id-en, og lenkene i steg 6 går til applisten din i stedet for rett til den appen. Tilpass bot krever et konfigurasjonstoken.

Opprett en app på api.slack.com/apps, og sett den deretter opp slik.

Socket Mode: aktiver det og la alle request-URL-er stå tomme. Slack avviser et manifest som ber om både Socket Mode og webhook-levering.

Scope for bot-tokenet (OAuth & Permissions):

app_mentions:read
assistant:write
channels:history
chat:write
commands
groups:history
im:history
users:read
users:read.email

Hendelsesabonnementer (bot-hendelser):

app_home_opened
app_mention
message.channels
message.groups
message.im

message.channels og message.groups er det som gjør at et svar inne i en allerede broet Slack-tråd virker. Uten dem kommer bare den første omtalen noensinne fram.

Skråstrekkommando: /cc (et hvilket som helst navn går — broen bruker den kommandoen den sist ble kalt med).

App Home: aktiver Messages-fanen og la den være skrivbar, slik at medlemmer kan sende direktemeldinger til boten.

Tokens: generer et app-nivå-token med connections:write, installer deretter appen og kopier bot-tokenet.

  1. Gå til Innstillinger → Arbeidsområde → Generelt og rull ned til kortet Chat-broer
  2. I Slack-blokken klikker du på Koble til Slack
  3. Fyll inn feltene:
Felt Verdi Hvor det ligger i Slack
Bot-token xoxb-… OAuth & Permissions → Bot User OAuth Token
App-nivå-token xapp-… Basic Information → App-Level Tokens (connections:write)
Appkonfigurasjonstoken (valgfritt) xoxe-… Tokenparet for appkonfigurasjon på api.slack.com/apps

Prefikset til hver verdi sjekkes på begge sider før noe sendes, så en verdi som limes inn i feil felt, avvises med samme setning uansett.

  1. Klikk på Koble til

Control Center verifiserer bot-tokenet med Slacks auth.test før den lagrer noe, så en skrivefeil rapporteres til deg i stedet for å bli en socket som stille aldri virker. App-nivå-tokenet kan bare bevises ved å åpne socketen, så et dårlig et dukker opp et øyeblikk senere som en tilkoblingsfeil i samme rad.

Uten det valgfrie appkonfigurasjonstokenet fungerer tilkoblingen fint — du kan bare ikke redigere boten fra Control Center.

  • Lagrer legitimasjonen i arbeidsområdets egen katalog, ved siden av databasen, kun lesbar for eieren. Den går aldri tilbake til en klient
  • Åpner én Socket Mode-tilkobling for dette arbeidsområdet og begynner å motta omtaler, Slack-trådsvar, direktemeldinger og skråstrekkommandoer
  • Aktiverer på nytt hver Slack-tråd som ble broet tidligere, slik at en gjentilkobling fortsetter eksisterende samtaler i stedet for å strande dem
  • Koster ingenting for arbeidsområder som ikke har noen chatapp: ingen socket, ingen timere, ingen trafikk

Slack-raden viser et statusmerke: Live, Kobler til…, Tilkoblingsfeil (med Slacks egen feil ved siden av) eller Ikke tilkoblet. Slik sjekker du hele veien:

  1. I Slack inviterer du boten til en kanal: /invite @your-bot-name
  2. Nevn den med en forespørsel
  3. Et Slack-trådsvar dukker opp, og et tilsvarende område dukker opp i Control Center

Hvert medlem som vil bruke broen, knytter deretter sin egen konto — se Koble til Slack-kontoen din.

Over de strømmede ordene sitter ett gruppert kort med én rad per steg. Oppsett er én rad der tittelen går fra Working on it… til Cloning … til Starting the agent…. Resonnering legger til en Thinking…-rad; når det steget er ferdig, kan en kort tanke dukke opp på den. Hvert verktøy er sin egen rad (Read lib/main.dart). Svaret kommer som vanlig tekst under kortet. Kortet blir fullført når turen avsluttes, og feilmerket når kjøringen mislyktes, ble avbrutt eller nådde grensen for antall turer.

Kortet starter i det øyeblikket boten godtar omtalen — Working on it… — slik at Slack-tråden ikke er stille mens arbeidsområdet fortsatt bygges. Den første omtalen din i en Slack-kanal oppretter samtalen, som kloner repoene agenten jobber i, så den oppsettraden viser deretter Cloning acme/widgets…, så Setting up Reviewer…, så Starting the agent…, og en Thinking…-rad så snart agenten faktisk resonnerer. På et stort repository tar det første oppsettet en stund; kortet er måten du kan se at den jobber i stedet for å ignorere deg. Senere omtaler i samme Slack-tråd åpner fortsatt med Working on it…, og hopper deretter over klonetrinnene fordi arbeidsområdet allerede finnes.

Resonnering som en vegg av tekst og verktøyutdata forlater aldri Control Center — tanken på Thinking…-raden er én kort linje, ikke et transkript. View in Control Center på kortet åpner hele samtalen i skrivebordsappen — lenken går til din egen Control Center-server, som overlater nettleseren til appen.

Hvis ingenting skjer når du klikker på den, er serveren som sendte meldingen, ikke tilgjengelig fra maskinen du klikket fra (for eksempel en server som bare lytter på loopback, klikket fra en telefon), eller så kjører ikke Control Center der. En server uten en tilgjengelig adresse sender et kort uten knapp i stedet for en som ikke fører noe sted.

Lim inn den nye verdien på nytt i kobledialogen og klikk på Koble til. En tilkobling erstatter uansett hvilken tilkobling som kjørte for dette arbeidsområdet, så socketen ringes opp på nytt med den nye legitimasjonen.

De to påkrevde tokenene må være til stede ved hver tilkobling. Det valgfrie appkonfigurasjonstokenet beholder den lagrede verdien når du lar feltet stå tomt, så å rotere et bot-token koster deg aldri muligheten til å redigere appen.

Klikk på Koble fra i Slack-raden (bare for admin). Socketen lukkes, og legitimasjonen glemmes.

Koblinger for områder og brukere overlever med vilje: å koble den samme appen til på nytt gjenoppretter hver broet Slack-tråd. De er rader knyttet til arbeidsområdet, så å slette arbeidsområdet fjerner dem uansett.

Les feilen som vises ved siden av merket. En avvist legitimasjon (invalid_auth, not_authed, token_revoked, account_inactive) er terminal — broen slutter å prøve på nytt og venter på nye tokens, fordi å prøve et tilbakekalt token på nytt i det uendelige bare gir deg hastighetsbegrensning. Lim inn tokenene på nytt i kobledialogen.

En missing_scope-feil betyr at appen er installert med færre scope enn broen trenger. Legg til det manglende scopet, installer appen på nytt i Slack, og koble til på nytt.

Alt som er forbigående (en socket som faller, et hikk hos Slack) kobler til på nytt av seg selv med eksponentiell backoff begrenset til 30 sekunder, og Slacks rutinemessige socketrotasjon trapper ikke opp den backoffen.

  • Er boten i kanalen? Slack leverer bare kanalmeldinger til apper som er medlemmer. Kjør /invite @your-bot-name
  • Er du knyttet? Et medlem som ikke er knyttet, får et svar i den Slack-tråden som forklarer hvordan man knytter. Se Koble til Slack-kontoen din
  • Er du medlem av arbeidsområdet med en skriverolle? En viewer eller guest får beskjed om at rollen er skrivebeskyttet. Broen starter aldri arbeid på vegne av noen den ikke kan tilskrive
  • Har arbeidsområdet noen agenter? Uten agenter lagres meldingen, men den har ingen som kan svare på den

Den svarer i en kanal, men ignorerer vanlige meldinger

Seksjon med tittelen «Den svarer i en kanal, men ignorerer vanlige meldinger»

Det er meningen. Utenfor en direktemelding handler broen bare på en melding som nevner boten, eller et svar inne i en Slack-tråd den allerede eier. Alt annet er andres samtale.

Svar kommer som én stor melding i stedet for som strøm

Seksjon med tittelen «Svar kommer som én stor melding i stedet for som strøm»

Raden sier «Live-strømming er av for denne Slack-appen — svar kommer som én melding.» Slacks strømmende svar krever funksjonen Agents & AI Apps i en betalt plan; når Slack avviser den, slutter broen å spørre for resten av tilkoblingens levetid og legger ut hele svar i stedet. Ingenting går tapt — hele transkriptet ligger alltid i Control Center.

Strømming trenger også et Slack-trådanpunkt, så et svar som ikke har noen Slack-tråd å vokse i, legges ut i sin helhet. Oppgavekortet kommer uansett: ved et helt svar følger det med den samme meldingen, allerede fullført.

Slacks oppgavekort er en del av den samme nye Agents & AI Apps-flaten som strømming, og Slack avviser først på kalltidspunktet. Når den gjør det, beholder Control Center svaret og dropper kortet for resten av tilkoblingens levetid — et svar uten statuslinje er bedre enn en statuslinje uten svar.

«Control Center trenger et appkonfigurasjonstoken for å redigere boten»

Seksjon med tittelen ««Control Center trenger et appkonfigurasjonstoken for å redigere boten»»

Raden Tilpass bot er deaktivert fordi tilkoblingen ikke har noe appkonfigurasjonstoken. Dette er forventet for en app som er laget for hånd eller gjennom Opprett i Slack — Slack fortalte aldri Control Center hvilken app det er. Generer et tokenpar på api.slack.com/apps og koble til på nytt med oppdateringstokenet utfylt.

Slack begrenser en enkelt melding til 40 000 tegn, så broen avkorter ved 39 000 og legger til en peker til Control Center — et forkortet svar er bedre enn ett Slack avviser helt. Hele teksten ligger alltid i områdets transkript.