슬랙 통합에서 게시물을 상위 주제에 선택적으로 스레딩

이 문제에 대해 고민하며 chat.postMessage Slack API 문서를 읽어보았는데, 내 긴 설명을 훨씬 더 간단한 것으로 정리할 수 있을 것 같습니다.

watch만 follow와 달리 어떤 메커니즘을 통해 스레드 응답을 선택할 수 있는지 아직 파악 중입니다. 아니면 @david, mute thread watch follow 우선순위를 가진 새로운 thread 규칙 필터를 도입하고, trigger_notification을 통해 규칙을 전달하여 규칙에 민감한 동작을 활성화하는 방식은 어떻게 생각하시나요?

  1. watch가 스레드로 설정되어 있는 경우(또는 thread 규칙이 정의된 경우), Slack 채널에 새 게시물 알림을 보낼 때 해당 게시물 토픽에 Slack ts가 연결되어 있다면, Slack에서 제공된 ts 값을 thread_ts로 설정하여 해당 Slack 스레드에 게시물을 게시합니다.

  2. Slack 채널에 새 게시물 알림을 보낼 때, 해당 게시물 토픽에 ts가 연결되어 있지 않다면, 토픽에 대한 반환된 응답의 ts를 저장합니다(이렇게 하면 watch가 스레드로 설정되어 있을 경우 해당 토픽의 향후 게시물들을 스레드로 묶을 수 있습니다).

  3. post thread :thread_url 명령을 사용할 때, 생성되는 토픽에 스레드 ts를 저장합니다. 이 값은 스레드 watch 규칙에서만 사용됩니다.

현재 제 생각과 우려 사항은 다음과 같습니다:

  1. 규칙별로 스레드에 게시할지 여부를 어떻게 결정할 것인가. 현재로서는 새로운 필터를 추가하는 것이 가장 쉬워 보이지만, 제가 무언가를 놓치고 있는 것일 수도 있습니다.

  2. 원래의 Slack 게시물 URL과 스레드 ID를 전사(transcript) 흐름을 통해 전달하는 부분이 현재 가장 불분명합니다. 게시물을 저장할 때까지 유지하기 위해 어딘가에 제공자별(provider-specific) 스레드 ID를 추가해야 할 것 같습니다. Slack ts에 대해서만 구현할 계획이지만, 아마도 스레드를 지원하는 채팅 통합은 Slack만이 아닐 것입니다.

  3. 게시물을 위해 Slack ts를 일반적인 DiscourseChat 커스텀 스레드 필드가 아니라 Topic의 Slack 전용 커스텀 필드에 저장해야 한다고 생각합니다.

1개의 좋아요