# Slack

## Co to robi

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.

## Z czego się składa

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.

- ~/.speedwave/
  - tokens/
    - &lt;project&gt;/
      - slack/
        - access_token krótkotrwały, podmontowany do workera tylko do odczytu
  - oauth/
    - &lt;project&gt;/
      - slack.json token odświeżający i tożsamość przestrzeni roboczej, nigdy niepodmontowany

## Jak to działa

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.

```mermaid
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ędzie | Co robi |
| --- | --- |
| `getChannelMessages` | Czyta 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. |
| `getThreadMessages` | Czyta wątek. Wymaga `channel` i `thread_ts`; najpierw zwraca wiadomość otwierającą, potem odpowiedzi od najstarszej do najnowszej. |
| `sendChannel` | Publikuje wiadomość na kanale lub w DM w twoim imieniu. Nie da się tego cofnąć, a wiadomość jest widoczna od razu po wysłaniu. |
| `listChannelIds` | Wymienia kanały, w których jesteś (domyślnie publiczne i prywatne). |
| `listDirectMessages` | Wymienia twoje otwarte rozmowy jeden na jeden oraz grupowe DM. |
| `openDirectMessage` | Otwiera 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. |
| `getFileContent` | Czyta 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. |
| `downloadFile` | Pobiera 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](/pl/docs/integrations/office-documents/) albo wprost z systemu plików. |
| `getUsers` | Odnajduje osobę po dokładnym adresie e-mail. |
| `findUsers` | Przybliż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.
**Caution:** Ogólne polecenie w stylu „daj im znać" to jeszcze nie zgoda na ostateczne brzmienie wiadomości. Speedwave prosi o potwierdzenie za każdym razem, przy każdej wysyłce.

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ę.

## Skonfiguruj to

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.

<DesktopFrame screen="integrations" />

Ogólny schemat, który powtarza się przy każdej integracji, opisuje [Podłącz integrację](/pl/docs/guides/connect-an-integration/).

## Granice bezpieczeństwa

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](/pl/docs/security/credentials/).