안녕하세요,
쿼리가 해결/해결됨으로 표시되면 해당 토픽의 생성자에게 개인 메시지(PM)를 보내는(또는 사전에 정의된 메시지와 함께 스레드에 새 답글을 생성하는 — 두 경우 모두 투표로 진행할 예정) 사용자 정의 자동화를 만들고자 합니다.
현재 자동화 플러그인에서 사용할 수 있는 ‘send pms’ 스크립트는 해결/해결됨으로 표시된 답글을 작성한 사람에게 PM을 보내기 때문에, 제 사용 사례에서 의도한 대로 토픽 생성자에게 보내려면 사용자 정의 자동화가 필요합니다.
아래는 답글이 해결로 표시되면 해당 토픽에 새 답글을 게시하기 위해 제가 작성한 스크립트입니다. (아래 예시에서는 답글로 투표를 보내지 않고, 관리자가 반환될 내용을 선택할 수 있거나 기본값을 그대로 사용할 수 있도록 했습니다.)
# frozen_string_literal: true
DiscourseAutomation::Scriptable.add(DiscourseAutomation::Scripts::REPLY_ON_SOLUTION) do
field :reply_text, component: :text
# field :answering_user, component: :user
field :once, component: :boolean
version 1
triggerables %i[:first_accepted_solution] if defined?(DiscourseSolved)
placeholder :sender_username
placeholder :word
script do |context, fields, automation|
topic = context["topic"]
# user = context["user"]
reply_text = fields.dig("reply_text", "value")
# Post a reply in the topic where a solution was marked
PostCreator.create!(
Discourse.system_user,
topic_id: topic.id,
raw: reply_text || "A solution has been marked for this topic!",
)
end
end
하지만 PostCreator.create!인지, PostCreator.reply인지, 아니면 다른 무언가를 사용해야 하는지 확실하지 않습니다. 여기서 한 가지 질문이 생겼습니다:
- 사용자 정의 자동화 스크립트 작성 시 사용할 키워드에 대한 문서가 어딘가에 존재합니까?
위 자동화를 기반으로 답글을 해결로 표시하여 트리거하면, 1초 후에 화면에 500 internal server error 메시지가 포함된 팝업이 표시됩니다.
- 제가 놓치고 있는 것이 있습니까? 제 배포는 개발 테스트 목적으로 로컬 머신에서 devcontainers를 사용하여 수행했습니다.
- 사용자 정의 스크립트를 생성한 후에 해야 할 필수 조치가 무엇입니까? 이 단계에서 무언가를 놓치고 있는 건지, 아니면 스크립트 자체에 문제가 있는 건지 궁금합니다.
- 스크립트가 완료된 후 진행해야 할 단계에 대한 문서가 어딘가에 있습니까? 예를 들어, 모든 것이 원활하게 작동하려면 어떤 파일들을 수정해야 하는지요. (자동화 목록에 올바른 이름과 설명이 표시되려면
client.en.yml을 변경해야 한다는 것을 어렵게 깨달았습니다.)
send pms 내장 스크립트를 기반으로, 답글을 생성하는 대신 PM을 보내도록 스크립트를 수정하는 시도를 계획하고 있지만, 다음 사항에 대해 확실하지 않습니다:
- 해결로 표시된 답글의 작성자가 아닌 토픽을 생성한 사람을 태그하는 방법은 어떻게 됩니까?
미리 조언과 도움을 주시면 감사하겠습니다.