Przejdź do głównej zawartości

Slack

Dzięki integracji ze Slackiem Speedwave czyta kanały i wiadomości prywatne, w których jesteś, otwiera udostępnione tam pliki, znajduje osoby i pisze wiadomości. Robi to w twoim imieniu: wszystko, co wyśle, idzie pod twoim nazwiskiem i z twoim zdjęciem, a widzi tylko tyle, ile widzi twoje konto na Slacku.

Połączenie składa się z dwóch części: krótkotrwałego tokenu dostępu, podmontowanego tylko do odczytu do workera Slacka, oraz tokenu odświeżającego, który nigdy nie opuszcza hosta. Tylko worker rozmawia z API Slacka i trzyma przy sobie bieżący token dostępu, i nic więcej.

  • Folder~/.speedwave/
    • Foldertokens/
      • Folder<project>/
        • Folderslack/
          • access_token krótkotrwały, podmontowany do workera tylko do odczytu
    • Folderoauth/
      • Folder<project>/
        • slack.json token odświeżający i tożsamość przestrzeni roboczej, nigdy niepodmontowany

Logujesz się tylko raz, przyciskiem Sign in with Slack w Speedwave Desktop. Nie musisz zakładać własnej aplikacji Slacka ani nigdzie wklejać tokenu: Speednet prowadzi jedną publiczną aplikację Slacka wspólną dla wszystkich instalacji, a cała wymiana danych rozgrywa się na twoim komputerze.

Po kliknięciu przycisku w przeglądarce otwiera się ekran zgody Slacka. Wybierasz przestrzeń roboczą, klikasz Allow, a Slack odsyła przeglądarkę na stały, lokalny adres http://localhost:41739/callback, którego nasłuchuje Speedwave. Speedwave przechwytuje stamtąd kod i od razu, u ciebie na komputerze, wymienia go na tokeny. Żaden serwer Speedwave nie bierze w tym udziału.

sequenceDiagram
    participant You as Ty
    participant Desktop as Speedwave Desktop
    participant Browser as Przeglądarka
    participant Slack
    You->>Desktop: Klik Sign in with Slack
    Desktop->>Browser: Otwórz ekran zgody Slacka
    Browser->>Slack: Wybierz workspace, klik Allow
    Slack->>Browser: Przekieruj na localhost:41739/callback z kodem
    Browser->>Desktop: Dostarcz kod do lokalnego nasłuchu
    Desktop->>Slack: Wymień kod na tokeny (PKCE, na twoim komputerze)
    Desktop->>You: Karta pokazuje Connected to (workspace)

Po nawiązaniu połączenia Speedwave czyta kanały i wiadomości prywatne, znajduje osoby i pisze wiadomości za pomocą zestawu narzędzi MCP. Identyfikatory autorów podmienia przy tym na wyświetlane nazwy, więc zamiast surowych ID widzisz prawdziwe imiona i nazwiska.

NarzędzieCo robi
getChannelMessagesCzyta historię kanału. Wymaga channel (nazwa, #nazwa lub ID); limit od 1 do 100, domyślnie 50; opcjonalne okno oldest/latest zawęża zakres. Zwraca po jednej stronie naraz, od najnowszych, a next_cursor/has_more służą do dociągania kolejnych.
getThreadMessagesCzyta wątek. Wymaga channel i thread_ts; najpierw zwraca wiadomość otwierającą, potem odpowiedzi od najstarszej do najnowszej.
sendChannelPublikuje wiadomość na kanale lub w DM w twoim imieniu. Nie da się tego cofnąć, a wiadomość jest widoczna od razu po wysłaniu.
listChannelIdsWymienia kanały, w których jesteś (domyślnie publiczne i prywatne).
listDirectMessagesWymienia twoje otwarte rozmowy jeden na jeden oraz grupowe DM.
openDirectMessageOtwiera lub przywraca DM z 1 do 8 osobami, wskazanymi przez ID użytkownika Slacka albo dokładny adres e-mail, nigdy przez samą nazwę. Odbywa się to bezgłośnie: druga strona niczego nie zauważa, dopóki faktycznie nie wyślesz wiadomości.
getFileContentCzyta w miejscu plik tekstowy udostępniony na Slacku (markdown, kod, logi, JSON), do 1 MB, z flagą truncated, gdy trzeba było go przyciąć. Plików binarnych nie czyta, zwraca za to ich metadane.
downloadFilePobiera dowolny plik, także binarny w rodzaju PDF-ów i obrazów, do przestrzeni roboczej projektu w /workspace/.speedwave/slack/, z limitem 50 MB, dzięki czemu otworzysz go integracją Dokumenty biurowe albo wprost z systemu plików.
getUsersOdnajduje osobę po dokładnym adresie e-mail.
findUsersPrzybliżone wyszukiwanie po nazwie w całej przestrzeni roboczej, nieczułe na znaki diakrytyczne. Zwraca do 25 trafień i przypomina, że nazwy się powtarzają, więc przed napisaniem DM potwierdź, do kogo piszesz.

Wysłanie wiadomości to jedyna czynność, która zostawia trwały ślad: reszta tylko czyta, a openDirectMessage co najwyżej otwiera rozmowę, po której nie widać niczego, dopóki nie padnie wiadomość.

Wyszukiwanie kanałów i osób opiera się na katalogu wczytywanym na żądanie i buforowanym (users.list/conversations.list Slacka, odświeżanym co godzinę), więc kolejne wyszukiwania nie biją za każdym razem do API Slacka.

Wysłanie wiadomości wymaga twojej zgody: przed każdym wpisem na kanale i każdą wiadomością prywatną Speedwave powtarza dokładnego odbiorcę oraz treść wiadomości słowo w słowo, a potem w tej samej turze czeka na twoje wyraźne przyzwolenie.

Tokeny dostępu tracą ważność po 12 godzinach, a Speedwave odświeża je po stronie hosta i za każdym razem rotuje token odświeżający, żeby pozostawał jednorazowy. Sam token odświeżający wygasa po 30 dniach bez aktywności i wtedy na karcie integracji wyświetla się baner z prośbą o ponowną autoryzację.

  1. Otwórz projekt w Desktop i przejdź do Integrations, a dalej do Slack.
  2. Kliknij Sign in with Slack i w oknie przeglądarki, które się otworzy, wybierz swoją przestrzeń roboczą.
  3. Kliknij Allow. Jeśli twoja przestrzeń robocza wymaga akceptacji aplikacji przez administratora, ktoś z uprawnieniami musi raz zatwierdzić aplikację Speedwave, zanim skończysz.
  4. Zaczekaj, aż karta pokaże Connected to z nazwą twojej przestrzeni roboczej, i kliknij restart now, żeby worker przejął dane uwierzytelniające.

Ogólny schemat, który powtarza się przy każdej integracji, opisuje Podłącz integrację.

Przy logowaniu prosimy tylko o uprawnienia na poziomie użytkownika, więc Speedwave potrafi dokładnie tyle, co twoje konto, i ani trochę więcej: nie założy kanału, nie zarchiwizuje go, nie zmieni mu nazwy, nikogo nie zaprosi ani nie ruszy ustawień przestrzeni roboczej. Czyta wyłącznie rozmowy, w których już jesteś. Nie ma sposobu, żeby podpiąć integrację do kanału, w którym cię nie ma.

Worker trzyma tylko krótkotrwały token dostępu, i to tylko do odczytu; token odświeżający oraz tożsamość twojej przestrzeni roboczej zostają w pliku, którego nie podmontowuje żaden kontener. O tym, jak taki podział powstrzymuje przejęty worker przed sięgnięciem do innych usług, przeczytasz w jak obsługiwane są dane uwierzytelniające.