Przejdź do głównej zawartości

Slack

Integracja z platformą Slack umożliwia Speedwave wyszukiwanie użytkowników, odczyt historii konwersacji na kanałach publicznych i prywatnych, pobieranie plików oraz wysyłanie wiadomości z poziomu konta zalogowanego użytkownika.

Integracja wykorzystuje mechanizm autoryzacji OAuth z rozszerzeniem PKCE, obsługiwany lokalnie na Twoim komputerze (hoście). Długoterminowe tokeny odświeżania są zapisywane w pliku ~/.speedwave/oauth/<projekt>/slack.json i nie są montowane do kontenerów. Demon hosta automatycznie odświeża krótkoterminowe tokeny dostępu montowane pod ścieżką /tokens/access_token w trybie tylko do odczytu:

  • Folder~/.speedwave/
    • Folderoauth/<projekt>/
      • slack.json (Token odświeżania na hoście)
    • Foldertokens/<projekt>/slack/
      • access_token (Montowany do kontenera tylko do odczytu)
sequenceDiagram
    participant Uzytkownik
    participant Desktop as Aplikacja Desktop
    participant Przegladarka
    participant Slack
    Uzytkownik->>Desktop: Kliknięcie "Sign in with Slack"
    Desktop->>Przegladarka: Otwarcie ekranu autoryzacji Slack
    Przegladarka->>Slack: Wybór obszaru roboczego i zgoda
    Slack->>Przegladarka: Przekierowanie na localhost:41739/callback
    Przegladarka->>Desktop: Przekazanie kodu autoryzacyjnego
    Desktop->>Slack: Wymiana kodu na tokeny PKCE
    Desktop->>Uzytkownik: Komunikat o połączeniu obszaru

Worker Slack udostępnia 10 operacji:

NarzędzieZakres działania
getChannelMessagesPobieranie historii wiadomości z kanału lub DM z paginacją kursorową.
getThreadMessagesOdczyt pełnego wątku dyskusyjnego w kolejności chronologicznej.
sendChannelPublikacja wiadomości na kanale lub w rozmowie prywatnej (wymaga zatwierdzenia).
listChannelIdsWykaz kanałów publicznych i prywatnych, do których należy użytkownik.
listDirectMessagesLista aktywnych konwersacji bezpośrednich i grupowych (DM).
openDirectMessageInicjowanie konwersacji bezpośredniej z maksymalnie 8 użytkownikami po adresie e-mail lub ID.
getFileContentOdczyt tekstowych fragmentów kodu, plików markdown lub JSON ze Slacka (do 1 MB).
downloadFilePobieranie załączników binarnych (PDF, obrazy) do katalogu /workspace/.speedwave/slack/ (do 50 MB).
getUsersWyszukiwanie profilu użytkownika po dokładnym adresie e-mail.
findUsersWyszukiwanie użytkowników w przestrzeni roboczej z tolerancją literówek i znaków diakrytycznych (fuzzy search).

Metadane użytkowników i kanałów są buforowane lokalnie z godzinnym czasem ważności w celu optymalizacji liczby zapytań do API.

  1. W aplikacji Desktop przejdź do widoku Integracje -> Slack.
  2. Kliknij Sign in with Slack, aby otworzyć stronę logowania w domyślnej przeglądarce.
  3. Wybierz docelową przestrzeń roboczą i zaakceptuj wymagane uprawnienia.
  4. Po nawiązaniu połączenia zrestartuj kontenery, aby worker wczytał poświadczenia.

Aplikacja żąda wyłącznie uprawnień użytkownika (user scopes), uniemożliwiając administracyjne zmiany w przestrzeni (tworzenie i archiwizacja kanałów, zapraszanie użytkowników czy zmiana ustawień organizacji). Worker ma dostęp wyłącznie do wątków i kanałów, których członkiem jest zalogowany użytkownik. Szczegóły znajdziesz w rozdziale Zarządzanie poświadczeniami.