Nastavte integraci Slack
Tenhle návod ukazuje, jak Slack připojit k pracovnímu prostoru Control Center: buď aplikaci necháš vytvořit Control Center, nebo ji postavíš sám.
Pro první průchod s průvodcem viz Propojte Slack s pracovním prostorem.
Předpoklady
Sekce “Předpoklady”- Role
ownerneboadminv pracovním prostoru Control Center — připojení chatové aplikace je změna nastavení pracovního prostoru - Oprávnění vytvářet a instalovat aplikace v pracovním prostoru Slacku
- Nic veřejně dosažitelného: spojení je odchozí (Socket Mode), takže server nepotřebuje příchozí port, tunel ani doménu
Tři cesty k aplikaci
Sekce “Tři cesty k aplikaci”| Cesta | Co dodáš | Co udělá Control Center |
|---|---|---|
| S průvodcem | Token konfigurace aplikace (xoxe-…) |
Vytvoří aplikaci se správnými scopes, událostmi, Socket Mode a slash příkazem a tobě nechá dva kroky, pro které Slack nemá API |
| Vytvořit v Slack | Nic | Otevře Slack se stejnou konfigurací předvyplněnou; vybereš pracovní prostor a potvrdíš |
| Ručně | Tokeny hotové aplikace | Ověří je a připojí |
Cesta s průvodcem je jediná, která aplikaci nechá z Control Center i spravovat, a právě to zapne Přizpůsobte chatbota. Aplikaci z Vytvořit v Slack lze později povýšit na spravovanou: do dialogu připojení vložíš token konfigurace.
Tlačítko na instalaci sdílené aplikace Slack od Control Center schválně chybí. Instalace distribuované aplikace Slack potřebuje sdílené client secret (Slack nemá PKCE) a Socket Mode rozesílá události aplikace náhodně mezi její spojení, takže jedna sdílená aplikace by zprávy tvého pracovního prostoru doručovala na cizí servery. Každý pracovní prostor proto vlastní svou aplikaci a tyhle tři cesty jsou o tom, jak málo práce tě to stojí.
Varianta A: aplikaci vytvoří Control Center
Sekce “Varianta A: aplikaci vytvoří Control Center”- Na api.slack.com/apps vygeneruj pár tokenů konfigurace aplikace a zkopíruj refresh token (
xoxe-…) - V Control Center jdi do Nastavení → Pracovní prostor → Obecné a sjeď ke kartě Mosty chatu
- V bloku Slack klikni na Vytvořit aplikaci za mě
- Vlož token, uprav název aplikace, jméno bota, popisy a slash příkaz, pak klikni na Vytvořit aplikaci
- Dokonči dva zbývající kroky, které dialog ukáže, každý jako odkaz do Slacku:
- Basic Information → App-Level Tokens: vygeneruj token se scopem
connections:write(xapp-…) - Install App: nainstaluj do pracovního prostoru a zkopíruj Bot User OAuth Token (
xoxb-…)
- Basic Information → App-Level Tokens: vygeneruj token se scopem
- Klikni na Vložit přihlašovací údaje a pokračuj na Připojení
Token konfigurace se při každém použití otočí. Control Center si otočenou hodnotu ukládá průběžně, takže ho už nemusíš vkládat znovu.
Varianta B: vytvoření ve Slacku, předvyplněné
Sekce “Varianta B: vytvoření ve Slacku, předvyplněné”Stejná aplikace, bez tokenu konfigurace. Slack ti otevře vlastní obrazovku vytvoření s celým manifestem už vyplněným.
- V Control Center jdi do Nastavení → Pracovní prostor → Obecné a sjeď ke kartě Mosty chatu
- V bloku Slack klikni na Vytvořit aplikaci za mě
- Uprav název aplikace, jméno bota, popisy a slash příkaz. Tyhle hodnoty jedou s odkazem
- Klikni na Vytvořit v Slack. Prohlížeč otevře stránku Slacku pro vytvoření aplikace s předvyplněnou konfigurací
- Vyber pracovní prostor Slacku a potvrď. Scopes, události, Socket Mode i slash příkaz už sedí
- Zpět v Control Center dokonči dva zbývající kroky, které dialog ukáže:
- Basic Information → App-Level Tokens: vygeneruj token se scopem
connections:write(xapp-…) - Install App: nainstaluj do pracovního prostoru a zkopíruj Bot User OAuth Token (
xoxb-…)
- Basic Information → App-Level Tokens: vygeneruj token se scopem
- Klikni na Vložit přihlašovací údaje a pokračuj na Připojení
Slack neohlásí, kterou aplikaci vytvořil, takže Control Center nezjistí id aplikace a odkazy v kroku 6 vedou na seznam aplikací, ne rovnou na tu aplikaci. Přizpůsobit bota potřebuje token konfigurace.
Varianta C: aplikaci postavíš sám
Sekce “Varianta C: aplikaci postavíš sám”Aplikaci vytvoř na api.slack.com/apps a nastav ji takhle.
Socket Mode: zapni ho a každou request URL nech prázdnou. Slack odmítne manifest, který chce Socket Mode i doručení webhookem.
Scopy tokenu bota (OAuth & Permissions):
app_mentions:readassistant:writechannels:historychat:writecommandsgroups:historyim:historyusers:readusers:read.emailOdběry událostí (bot events):
app_home_openedapp_mentionmessage.channelsmessage.groupsmessage.immessage.channels a message.groups jsou to, díky čemu funguje odpověď uvnitř už přemostěného vlákna Slacku. Bez nich dorazí jen první zmínka.
Slash příkaz: /cc (funguje libovolné jméno; most použije příkaz, kterým byl naposledy vyvolaný).
App Home: zapni kartu Messages a nech ji zapisovatelnou, aby členové mohli botovi psát DM.
Tokeny: vygeneruj token na úrovni aplikace se scopem connections:write, pak aplikaci nainstaluj a zkopíruj OAuth token uživatele bota.
Připojení
Sekce “Připojení”- Jdi do Nastavení → Pracovní prostor → Obecné a sjeď ke kartě Mosty chatu
- V bloku Slack klikni na Připojit Slack
- Vyplň pole:
| Pole | Hodnota | Kde to ve Slacku je |
|---|---|---|
| Token bota | xoxb-… |
OAuth & Permissions → Bot User OAuth Token |
| Token na úrovni aplikace | xapp-… |
Basic Information → App-Level Tokens (connections:write) |
| Token konfigurace aplikace (volitelné) | xoxe-… |
Pár tokenů konfigurace aplikace na api.slack.com/apps |
Prefix každé hodnoty se zkontroluje na obou stranách, ještě než se cokoli odešle, takže hodnota vložená do špatného pole se odmítne stejnou větou na obou stranách.
- Klikni na Připojit
Control Center ověří token bota přes Slackové auth.test ještě před uložením, takže překlep uvidíš ty a nevznikne z něj socket, který tiše nikdy nefunguje. Token na úrovni aplikace se dá dokázat jen otevřením socketu, takže špatný se o chvíli později ukáže jako chyba připojení na stejném řádku.
Bez volitelného tokenu konfigurace aplikace spojení funguje. Bota z Control Center jen neupravíš.
Co připojení udělá
Sekce “Co připojení udělá”- Uloží přihlašovací údaje do vlastního adresáře pracovního prostoru, vedle jeho databáze, čitelné jen pro vlastníka. Ke klientovi se nikdy nevracejí
- Otevře jedno spojení Socket Mode pro tenhle pracovní prostor a začne přijímat zmínky, odpovědi ve vláknech Slacku, přímé zprávy a slash příkazy
- Znovu aktivuje každé vlákno Slacku, které už bylo přemostěné, takže opětovné připojení pokračuje v existujících konverzacích a nenechá je viset
- Pracovní prostory bez chatové aplikace nic nestojí: žádný socket, žádné časovače, žádný provoz
Ověření
Sekce “Ověření”Řádek Slacku ukazuje stavový štítek: Živě, Připojování…, Chyba připojení (vedle něj vlastní chyba Slacku) nebo Nepřipojeno. Kontrola od začátku do konce:
- Ve Slacku pozvi bota do kanálu:
/invite @your-bot-name - Zmiň ho s požadavkem
- Objeví se odpověď ve vláknu Slacku a v Control Center odpovídající prostor
Každý člen, který chce most používat, si pak propojí vlastní účet. Viz Propojte účet Slack.
Jak vypadá odpověď ve Slacku
Sekce “Jak vypadá odpověď ve Slacku”Nad streamovanými slovy sedí jedna seskupená karta, řádek na krok. Příprava je jeden řádek, jehož nadpis přechází z Working on it… na Cloning … a na Starting the agent…. Uvažování přidá řádek Thinking…; když ten krok skončí, může se na něm objevit krátká myšlenka. Každý nástroj má vlastní řádek (Read lib/main.dart). Odpověď přijde jako obyčejný text pod kartou. Karta se dokončí, když skončí tah, a označí chybu, když běh selhal, byl přerušen, nebo narazil na limit tahů.
Karta začne v okamžiku, kdy bot zmínku přijme, u Working on it…, takže vlákno Slacku nemlčí, dokud se pracovní prostor ještě staví. První zmínka v kanálu Slacku vytvoří konverzaci a ta naklonuje repozitáře, ve kterých agent pracuje, takže řádek přípravy pak čte Cloning acme/widgets…, pak Setting up Reviewer…, pak Starting the agent… a pak řádek Thinking…, jakmile agent opravdu uvažuje. Na velkém repozitáři ta první příprava chvíli trvá a karta je způsob, jak poznáš, že to běží. Pozdější zmínky ve stejném vláknu Slacku pořád začínají Working on it… a kroky klonování přeskočí, protože pracovní prostor už stojí.
Uvažování ve formě zdi textu a výstup nástroje Control Center neopouštějí. Myšlenka na řádku Thinking… je krátký řádek, ne přepis. View in Control Center na kartě otevře celou konverzaci v desktopové aplikaci. Odkaz míří na tvůj vlastní server Control Center, který prohlížeč předá aplikaci.
Když se po kliknutí nic nestane, server, který zprávu poslal, není z počítače, na kterém jsi klikl, dosažitelný (třeba server jen na loopback, na který klikneš z telefonu), nebo tam Control Center neběží. Server bez dosažitelné adresy pošle kartu bez tlačítka, ne kartu, která nikam nevede.
Rotace tokenu
Sekce “Rotace tokenu”Novou hodnotu vlož znovu do dialogu připojení a klikni na Připojit. Připojení nahradí spojení, které pro tenhle pracovní prostor běželo, takže se socket naváže znovu s novými přihlašovacími údaji.
Při každém připojení musí být oba povinné tokeny vyplněné. Volitelný token konfigurace aplikace si uloženou hodnotu nechá, když pole necháš prázdné, takže rotace tokenu bota tě o možnost aplikaci upravovat nepřipraví.
Odpojení
Sekce “Odpojení”Na řádku Slacku klikni na Odpojit (jen admini). Socket se zavře a přihlašovací údaje se zapomenou.
Vazby prostorů a uživatelů schválně zůstanou: opětovné připojení stejné aplikace obnoví každé přemostěné vlákno Slacku. Jsou to řádky vázané na pracovní prostor, takže smazání pracovního prostoru je stejně odstraní.
Řešení problémů
Sekce “Řešení problémů”Řádek hlásí „Chyba připojení“
Sekce “Řádek hlásí „Chyba připojení“”Přečti chybu vedle štítku. Odmítnutý přihlašovací údaj (invalid_auth, not_authed, token_revoked, account_inactive) je konečný: most přestane zkoušet znovu a čeká na nové tokeny, protože opakované zkoušení odvolaného tokenu tě jen přivede na limit četnosti. Tokeny vlož znovu do dialogu připojení.
Chyba missing_scope znamená, že aplikace je nainstalovaná s méně scopes, než most potřebuje. Chybějící scope přidej, aplikaci ve Slacku znovu nainstaluj a pak se znovu připoj.
Všechno přechodné (spadlý socket, krátký výpadek Slacku) se připojí samo, s exponenciální prodlevou se stropem 30 sekund, a běžná rotace socketu ve Slacku tu prodlevu nezvedá.
Bot na zmínku neodpoví
Sekce “Bot na zmínku neodpoví”- Je bot v kanálu? Slack doručí zprávy kanálu jen aplikacím, které jsou členy. Spusť
/invite @your-bot-name - Jsi propojený? Nepropojený člen dostane v tom vláknu Slacku odpověď s návodem, jak se propojit. Viz Propojte účet Slack
- Jsi člen pracovního prostoru s rolí s právem zápisu?
viewerneboguestse dozví, že jeho role je jen ke čtení. Most nikdy nespustí práci za někoho, koho nedokáže přisoudit - Má pracovní prostor nějaké agenty? Bez agentů se zpráva uloží, ale nemá kdo odpovědět
V kanálu odpovídá, obyčejné zprávy ignoruje
Sekce “V kanálu odpovídá, obyčejné zprávy ignoruje”Je to schválně. Mimo přímou zprávu most jedná jen u zprávy, která bota zmíní, nebo u odpovědi uvnitř vlákna Slacku, které už vlastní. Všechno ostatní je cizí konverzace.
Odpovědi přijdou jako jedna velká zpráva místo streamu
Sekce “Odpovědi přijdou jako jedna velká zpráva místo streamu”Řádek hlásí „Živé streamování je pro tuto aplikaci Slack vypnuté — odpovědi přijdou jako jedna zpráva.“ Streamované odpovědi Slacku potřebují funkci Agents & AI Apps na placeném tarifu; když ji Slack odmítne, most o ni po zbytek života toho spojení přestane žádat a posílá celé odpovědi. Nic se neztratí. Celý přepis je vždy v Control Center.
Streamování taky potřebuje kotvu vlákna Slacku, takže odpověď, která nemá vlákno Slacku, do kterého by rostla, se pošle celá. Karta úkolu přijde tak jako tak: u celé odpovědi jede na stejné zprávě, už dokončená.
Nad odpovědí chybí karta
Sekce “Nad odpovědí chybí karta”Karty úkolů ve Slacku patří ke stejné nové ploše Agents & AI Apps jako streamování a Slack je odmítne až v okamžiku volání. Když se to stane, Control Center si odpověď nechá a kartu po zbytek života toho spojení zahodí. Odpověď bez stavového řádku je lepší než stavový řádek bez odpovědi.
„Control Center k úpravě bota potřebuje token konfigurace aplikace“
Sekce “„Control Center k úpravě bota potřebuje token konfigurace aplikace“”Řádek Přizpůsobit bota je neaktivní, protože spojení nemá token konfigurace aplikace. Čeká se to u aplikace postavené ručně nebo přes Vytvořit v Slack, protože Slack neohlásí, kterou aplikaci vytvořil. Na api.slack.com/apps vygeneruj pár tokenů konfigurace aplikace a připoj se znovu s vyplněným refresh tokenem.
Dlouhá odpověď je useknutá
Sekce “Dlouhá odpověď je useknutá”Slack omezuje jednu zprávu na 40 000 znaků, takže most zkrátí na 39 000 a připojí odkaz do Control Center. Zkrácená odpověď je lepší než ta, kterou Slack rovnou odmítne. Plný text je vždy v přepisu prostoru.