/ / Slack API: odbierać zdarzenia tylko w określonych kanałach? - slack-api

Slack API: odbierać zdarzenia tylko w określonych kanałach? - luźno-api

Zbudowałem tę aplikację odbiera wydarzenia.

Domyślnie zakres channels:history pozwala odbierać zdarzenia dla wszystkich wiadomości we wszystkich kanałach publicznych użytkownika, który dodał aplikację.

Idealnie byłoby, gdyby użytkownik mógł ograniczyć go tylko do niektórych kanałów, bezpośrednio w ustawieniach aplikacji. (Każde zdarzenie, które otrzyma aplikacja, stanie się czytelne na całym świecie).

Teraz widzę 2 opcje:

  1. Zdarzenie wiadomości zawiera identyfikator kanału (nie nazwę). Tak więc kod może filtrować kanał, zakładając, że istnieje sposób, aby go ustawić, a użytkownik mu ufa.

  2. Stwórz użytkownik bota (nawet jeśli aplikacja jest tylko do odczytu), które użytkownik może dodać do określonych kanałów.

Czy istnieje lepszy sposób?

Odpowiedzi:

2 dla odpowiedzi № 1

Jeśli nie chcesz używać użytkownika bota (twoja opcja2) jedynym sposobem jest odfiltrowanie wiadomości z niepożądanych kanałów w Twojej aplikacji. Otrzymasz zdarzenie wiadomości dla każdej nowej utworzonej wiadomości (w tym wysłanej z Twojej aplikacji). Zdarzenie komunikatu już zawiera channel ID, dzięki czemu możesz łatwo filtrować na podstawie tego.

Przykład: (Źródło)

{
"type": "message",
"channel": "C2147483705",
"user": "U2147483697",
"text": "Hello world",
"ts": "1355517523.000005"
}

W ustawieniach zdarzenia nie ma parametru, którypozwala wcześniej wybrać kanały. Ale ponieważ wydaje się, że jest to powtarzające się pytanie, sugerowałbym wysłanie prośby w tej sprawie do zespołu Slacka.