이제 목록에서 수동 → 채팅 또는 채널에 카드 게시(manual → Post card in a chat or channel)라는 이름의 작업 흐름을 볼 수 있어야 합니다. 이 작업 흐름의 세로 점 세 개 버튼을 클릭하고 드롭다운 메뉴에서 세부 정보(Details)를 선택합니다.
Discourse 관리자 영역에서 채팅 통합 활성화(Chat integration enabled) 설정을 켜서 채팅 통합 플러그인을 활성화하고, 채팅 통합 Teams 활성화(Chat integration Teams enabled) 설정을 켜서 Microsoft Teams를 지원합니다.
모든 것이 정상 작동하는지 확인했으므로, Discourse로 돌아가 채널에 추가 규칙을 설정하여 메시지를 사용자 정의할 수 있습니다.
디버깅
Microsoft Teams에서 예상대로 메시지가 표시되지 않으면, 작업 흐름 세부 정보(Workflow Details) 페이지로 이동(위의 Teams 설정 섹션 10단계 참조)하여 실행 이력(Run history) 섹션을 확인합니다. 여기에는 각 메시지 실행에 대한 로그가 표시되어야 합니다.
일주일 전쯤 별도의 DigitalOcean 드롭렛에 설치했습니다(원클릭 설치). 현재 버전은 2.6.0.beta1 (310952fd6a)입니다. 서브도메인을 사용하며 DNS 레코드도 DigitalOcean에 설정되어 있습니다. 이 안내에 따라 이메일로 답변을 받기 위해 IP로 가리키는 A 레코드와 서브도메인 이름으로 가리키는 MX 레코드를 설정했습니다. 유일한 차이점은 DMARC 레코드를 게시하지 않았다는 점입니다.
DNS 관련해서 제가 한 작업은 이 정도입니다. 하지만 지금까지는 모든 것이 예상대로 작동했습니다. 사이트가 설정되었고 서브도메인 이름으로 접속할 수 있으며, 로그인하고 토픽을 생성(이메일로도 가능)하는 등 모든 기능이 정상적으로 동작합니다.
DNS 해석이라고 할 때, 이는 서버가 outlook.office.com에 연결하는 데 문제가 있다는 뜻입니다. 포럼의 DNS 레코드 설정은 이에 영향을 주지 않아야 합니다.
SSH로 서버에 접속하여 다음을 실행해 볼 수 있나요?
host outlook.office.com
아래와 같은 결과가 나와야 합니다.
outlook.office.com is an alias for substrate.office.com.
substrate.office.com is an alias for substrate.ms-acdc.office.com.
substrate.ms-acdc.office.com is an alias for afd-k.office.com.
afd-k.office.com is an alias for outlook-office-com.k-0002.k-msedge.net.
outlook-office-com.k-0002.k-msedge.net is an alias for k-0002.k-msedge.net.
k-0002.k-msedge.net has address 13.107.18.11
k-0002.k-msedge.net has IPv6 address 2620:1ec:c::11
Trying "outlook.office.com"
Host outlook.office.com not found: 2(SERVFAIL)
Received 36 bytes from 127.0.0.53#53 in 43 ms
포트 :443을 추가하면 다른 오류가 발생합니다.
Trying "outlook.office.com:443"
Host outlook.office.com:443 not found: 3(NXDOMAIN)
Received 40 bytes from 127.0.0.53#53 in 3 ms
Received 40 bytes from 127.0.0.53#53 in 3 ms
google.com이나 제가 언급한 discourse 인스턴스의 도메인(h-da.transformative-praxis.cc) 또는 기타 사이트의 경우, 귀하가 설명하신 것과 유사한 예상된 출력을 얻습니다.
첫 번째 오류에 대해 검색을 해 보았지만, 그 원인이 무엇인지 여전히 확실하지 않습니다. 다음 내용을 읽어 보았지만, 이것이 제 문제와 실제로 관련이 있는지 판단하지 못했습니다:
따라서 이 시점에서는 모든 것이 정상인 것처럼 보였습니다. 확실하게 확인하기 위해 약 10초 간격으로 15회 정도 연속으로 반복했는데, 어느 시점부터는 이전과 동일한 servfail 오류가 발생했습니다. 하지만 대부분은 정상적으로 작동했습니다.
테스트 메시지를 보내는 경우에는 정반대입니다. 10번 중 1번 정도만 성공합니다. 나머지 경우에는 이전과 동일한 오류가 발생합니다. 그리고 채널에 설정한 규칙에 맞는 일반 메시지를 게시하면 알림도, 로그에 오류 메시지도 표시되지 않습니다.
어떤 원인이 이런 문제를 일으키는지 파악하기가 너무 무작위적으로 느껴집니다.
각 하위 도메인당 두 개의 드롭렛과 두 개의 A 레코드, 그리고 ns1.digitalocean.com을 가리키는 메인 도메인의 NS 레코드 한 세트로 구성된 제 설정이 문제일 것 같다고 계속 의심했습니다. 그래서 dnsstuff로 제 사이트를 검사해 보니 SOA record check에서 Fail 판정을 받았고, whatsmydns.net로 NS 레코드를 확인해 보았지만, 여전히 제 문제와 어떤 연관성이 있는지 파악하지 못했습니다.
이 시점에서 누가 오류를 일으키고 있는지 완전히 혼란스럽습니다. @david의 말대로 영향을 주지 않아야 할 DNS 설정을 잘못한 제 문제인지, 서버 설정/문제인지, 아니면 단순히 MS-Teams(outlook.office.com)의 문제이거나 어떤 식으로든 저를 차단하고 있는 것인지요?
오류를 찾기 위해 무엇을 확인하거나 해야 할지에 대한 힌트는 모두 환영합니다. 여기에서 도움을 드리기 어려운 상황이라고 생각하시면, 어디로 가서 질문해야 할지에 대한 조언도 부탁드립니다.
이 유용한 플러그인을 만들어 주셔서 감사합니다.
훌륭한 개선 사항이 될 것 같습니다: 메시지 내에 그룹 멘션을 추가하여 Teams 쪽에서 알림을 생성하도록 하는 것입니다.
웹훅 API는 이 기능을 구현하지 않고 있는 것(또는 과거에 그랬던 것)으로 보이지만, 최근 구현되었다고 말하는 사람들도 있습니다.
쉽게 구현할 수 있다고 보시는지요?