Discord에서 Discourse로?

안녕하세요, 디스코드에서 작성한 게시글을 자동으로 디스커스에 게시글로 생성하는 방법이 있을까요?

1개의 좋아요

샘님, 안녕하세요! 저희 커뮤니티에 오신 것을 환영합니다. Set up Discord notifications with the discourse-chat-integration plugin 을 확인해 보세요.

앞으로는 :mag: 검색 기능을 사용해 보시기 바랍니다. 많은 질문들이 이미 이곳에서 논의되었는데, 검색 기능이 이를 찾는 데 꽤 잘 작동합니다.

1개의 좋아요

감사합니다. 하지만 확인해 봤고, 제가 찾는 것은 이것이 아닙니다. 이건 Discourse에서 Discord로 보내는 것이지, Discord에서 Discourse로 보내는 것이 아닙니다.

예시 시나리오:
Discord 채널에 메시지가 도착하면, 해당 메시지가 Discourse로 전송되고 정보가 포함된 스레드가 생성됩니다.

2개의 좋아요

chat-integration은 Slack에서 해당 기능을 수행할 수 있습니다. Discord에서 대화 기록 게시 기능이 구현되길 원하시는 것 같습니다.

2개의 좋아요

고맙습니다. 그러면 자동으로 처리할 방법이 없군요.

커스텀 Discord 봇을 사용하여 메시지 내용을 복사하고 포럼으로 POST 요청을 보내는 방식으로 구현할 수 있습니다.

포럼에 플러그인을 사용하고 discordrb로 봇을 작성하는 것이 아니라면, 추가적인 호스팅이 필요합니다.

다음 내용을 사용해 보세요:

https://meta.discourse.org/t/how-to-connect-discourse-with-hundreds-of-apps-using-integromat/

감사합니다. 시도해 봤는데, 어떤 이유에선지 메시지 ID 변수를 올바르게 설정해서 작동시키지 못하겠습니다.

그들의 기술 지원팀이 문제를 해결하는 데 도움을 줄 가능성이 높습니다.

권한 및 호출과 관련하여 어떻게 작동하나요?

모든 메시지를 복사하길 원하시나요, 아니면 특정 채널의 메시지만 복사하길 원하시나요? 모두 단일 토픽에 추가되나요? 새 토픽이 생성되는 조건은 무엇인가요?

모든 Discord 사용자에게 실행 권한이 있나요?

어디에 저장되나요? 카테고리가 없나요?

3개의 좋아요

호출된 채널의 메시지만, 이상적으로는 지정된 중단 지점까지.

우아하게 구현하는 방법은 다음과 같습니다:

  • 게시할 첫 번째 메시지에 "답장(Reply)"을 누릅니다
  • @YourDiscourseIntegrationBotAccount를 입력하고, 필요 시 끝에 transcript 또는 그 번역어를 추가합니다
  • 해당 메시지에서 현재 시점까지의 전사(Transcript)가 최대 약 50개 메시지로 제한되어 Discourse에 게시됩니다. 가능하면 해당 사용자로 게시됩니다.

상호작용적인 입력을 허용하고 싶다면 더 정교하게 만들 수 있습니다. 예를 들어, 사용자 정의 중단 지점 설정, 일부 메시지 제외, 사용자 정의 대상 카테고리 지정 등이 가능합니다. 이는 왕복 대화 없이 제가 생각해 낼 수 있는 가장 좋은 사용자 경험(UX)입니다.

실제로, 이 기능을 대화형으로 만드는 것은 꽤 쉬울 것입니다:

const BASE_URL = "https://discourse.example.com";

// 전제 조건:
// msg.type == REPLY (19)
// msg.mentions 또는 msg.mention_roles에 봇이 포함되어야 함
// 이 코드는 JS로 작성되었지만 Ruby로 구현해야 합니다
function onMentionWithReply(msg) {
  discord.sendMessage({
    content: "<" + BASE_URL +
      "/chat-integration/discord/make-transcript/" +
      msg.channel_id + "/" +
      msg.message_reference.message_id + ".." + msg.id +
      ">";
    type: REPLY,
    message_reference: { message_id: msg.id },
  });
}

여기서 /chat-integration/discord/make-transcript/:channel_id/:id1..:id2는 메시지를 미리 보고 확정할 수 있는 대화형 페이지를 Discourse에서 렌더링합니다.

주의할 점:

  • 해당 페이지에 접근하는 사용자의 권한을 확인하여 전사가 부적절하게 공개되지 않도록 해야 합니다.
4개의 좋아요

현재 저는 Slack에서 Trello로, Trello에서 Discord로 이어지는 링크를 가지고 있습니다. 그래서 Discord에 게시물을 만들거나, 아니면 Trello에서 특정 주제 아래 새 게시물을 생성하는 방법을 알고 싶습니다.

게시물을 올릴 곳은 너무 많은데 시간은 부족하네요! :slight_smile:

감사합니다. 한번 확인해볼게요.

아, 죄송합니다. 슬랙 통합처럼 양방향으로 게시되지 않는다는 점을 몰랐습니다.

솔직히 왜 이렇게 하려고 하는지 궁금하네요. 그렇게 하면 디스커스의 장기 기억에 잡소리가 쌓여서 어질러질 텐데요.

문제가 아닙니다. 디스코드에 게시하고 싶은 채널의 게시물은 게임의 새 업데이트 공지사항입니다. 같은 내용을 여러 곳에 게시하는 것은 시간이 많이 걸리고, 디스코드는 자주 잊히곤 합니다. 그래서 저는 제 업무 부담을 줄이면서 동시에 디스코드에서의 활동도 늘리고자 합니다.

1개의 좋아요

음, 결국 어쩔 수 없이 써야 할 것 같은 우회 방법을 찾았어요.
zapier를 사용했는데, 단점은 무료 플랜으로는 포스트를 모두 커버하기가 부족하다는 거예요. trello를 discourse에 연결해서 이 용도로 따로 만든 스레드에 답변을 남기려고 했거든요.
그래서 현재 플로우가 이렇게 바뀌었어요;
데이터베이스에서 포스트가 Slack으로 API를 통해 전송되고, Slack이 trello 카드를 생성하며, trello가 discord와 discourse에 포스트를 올립니다. :slight_smile:
근데 이제 discourse가 discord에 다시 포스트를 올리는 루프가 생겼어요 ㅋㅋ 제 포스트를 그 루프에서 제외하는 방법이 있을까요?

관련 기능을 추가했습니다: Discord Bot Construction Kit 🤖 - #79 by merefield

채널을 "공지 채널"로 지정하면, 해당 채널에 입력된 모든 메시지가 지정된 Discourse 주제에 게시됩니다.

(이번 업데이트는 Discord의 해당 채널로 복사된 Discourse의 공지 사항도 모니터링합니다)

제 구현 환경에서도 이러한 상황이 발생하지만, 무한 루프는 아니며 단순히 게시글이 추가되었음을 확인하는 응답만 돌아옵니다. Discord 주제를 Discourse에서 다른 위치에 두거나, 모니터링 대상 카테고리를 피하면 이 문제를 방지할 수 있습니다.

5개의 좋아요

오, 감사합니다. 제3자 앱을 하나 더 쓸 필요가 없을 것 같네요! 이미지 링크를 어떻게 처리하는지 한번 봐야겠어요.

1개의 좋아요

사실 당신의 설명을 잘 이해하지 못하겠습니다. Discourse 메뉴에서 플러그인 섹션을 찾아봐도 해당 항목을 찾을 수 없고, 플러그인을 설치하는 방법도 이해가 되지 않습니다.

플러그인 주제에 지침과 관련된 구체적인 문제를 게시해 주세요.

현재 질문이 다소 모호하여 도움을 드리기 어렵습니다. OP(첫 게시물)를 꼼꼼히 읽어 보신 후 구체적인 문제를 게시해 주시면 기꺼이 도와드리겠습니다.

1개의 좋아요