아마 제 실수일 가능성이 높지만, 원인을 찾지 못하겠습니다. 해당 주제에 대한 모든 스레드를 확인해 보았고, 도움을 받고 싶습니다. Slack 앱의 권한을 여러 번 확인해 보았으며, 특정 채널 하나에서는 100% 정상적으로 작동한다는 것을 확인할 수 있습니다!
/discourse post 20
따라서 액세스 토큰이 올바르게 설정되어 있고 정상적으로 작동한다는 것을 알고 있습니다. 그러나 Slack 팀의 다른 모든 채널에서는 위의 명령어가 단순히 다음만 출력합니다.
Loading the transcript...
그리고 그 이상은 아무것도 없습니다. 모두 공개 채널이며, 설정 조합을 온갖 방식으로 시도해 보았습니다. 정상적으로 작동하는 채널은 오늘 새로 생성된 것이지만, 테스트를 위해 다른 새 채널을 생성했을 때는 작동하지 않았습니다. 어디부터 문제 해결을 시작해야 할지조차 모르겠습니다. 제가 아는 Discourse의 로그는 다음과 같습니다.
./launcher logs app
하지만 거기에는 아무것도 없는 것 같습니다. 게시가 하나의 채널에서만 작동하도록 허용하는 설정을 놓쳤을 수 있는데, 어떤 설정일까요? 그리고 이 문제를 디버깅하려면 어디를 살펴봐야 할까요?
@simon 이게 문제였던 것 같아요! 솔직히 말하면, Slack 앱이 어떻게 동작하는지 약간 혼란스럽습니다. 어떤 Slack 채널에서든 /discourse ... 명령어를 실행할 수 있었고, "App"이 전역 수준으로 설치된 것처럼 보였기 때문에, 앱을 필요한 모든 방식으로 "추가"한 것으로 생각했습니다. 하지만 명시적으로 /invite 명령어로 다른 채널에 Discourse 앱 사용자를 초대하면 작동하기 시작합니다!
/invite @Discourse
/discourse post 20
이것의 매우 짜증나는 점은, 사용자를 채널에 추가한 후에도 Slack이 내 채널에 @discourse 사용자가 있는지 보여주지 않는다는 것입니다. Slack UI의 사용자 수가 변하지 않고, 채널의 모든 구성원을 조회해도 내 앱 사용자가 목록에 표시되지 않습니다. 이것은 Discourse가 아니라 Slack 자체의 결함인 것 같습니다.
팀의 모든 Slack 채널(아시다시피 채널이 매우 많습니다)에 Discourse 사용자를 초대할 필요가 없으면 좋겠지만, 이것은 아마도 Slack의 앱 관련 제한 사항일 것입니다. 또한, 이 문제를 감지하고 더 유용한 오류 메시지를 표시하도록 Discourse 채팅 플러그인에 개선 사항을 추가할 수 있을까요?
처음 이 설정을 시도했을 때, 모든 채널에 Discourse 앱을 추가해야 한다는 사실에 놀랐습니다. 이 요구 사항을 우회할 수 있는 방법이 있는지 주의를 기울이겠습니다.
앱이 채널에 게시할 권한이 없어 작업이 실패할 때 Slack이 Discourse에 오류 메시지를 반환할 수 있습니다. 만약 그렇다면, 그 오류를 활용하여 Discourse의 해당 채널 항목에 통지를 추가하면 이 유형의 문제를 디버깅하는 데 도움이 될 것입니다. 이것이 가능할지는 확신할 수 없지만, Slack이 이 경우에 Discourse에 유용한 정보를 반환하는지 확인해 보겠습니다.
Discourse가 이 오류 메시지를 파싱하여 사용자가 문제를 해결하기 위해 무엇을 해야 하는지에 대한 세부 정보를 제공할 수 있을 것입니다.
앱이 추가되지 않은 채널에서 슬래시 명령을 사용하여 Discourse에 게시를 시도하면, slack_command_controller.rb:86에서 Job exception: break from proc-closure 오류가 Discourse에서 발생합니다. 이 경우를 위해 의미 있는 오류 메시지를 생성할 만큼 충분한 정보가 Slack에서 반환되는지 확실하지 않습니다.