こんにちは、Discord の投稿から自動的に Discourse に投稿を作成する方法はありますか?
こんにちは、Sam さん!コミュニティへようこそ。Set up Discord notifications with the discourse-chat-integration plugin をご覧ください。
今後は
検索をお試しください。多くの質問はすでにここで議論されており、検索機能もそれらを見つけるのに非常に優れています。
ありがとうございます。確認しましたが、探しているものと異なります。これはDiscourseからDiscordへの連携ではなく、DiscordからDiscourseへの連携が必要です。
具体例:
Discordのチャンネルにメッセージが届くと、そのメッセージがDiscourseに送信され、その情報でスレッドが作成される、というシナリオです。
Slack ではチャット統合でその機能を実現できます。Discord 向けに「トランスクリプトの投稿」機能の実装をお探しのようです。
ありがとうございます。つまり、自動化された方法は存在しないのですね。
カスタム Discord ボットを作成してメッセージの内容をコピーし、フォーラムに対して POST リクエストを送信することで、これを達成できます。
ただし、フォーラムのプラグインとして discordrb を使用しない限り、追加のホスティングが必要になります。
こちらをお試しください:
https://meta.discourse.org/t/how-to-connect-discourse-with-hundreds-of-apps-using-integromat/
ありがとうございます。試してみたのですが、なぜか正しいメッセージID変数の設定がうまくいきません。
テクニカルサポートなら、きっと解決策を見つけるお手伝いができるはずです。
権限や呼び出しについて、どのように動作するのでしょうか?
すべてのメッセージをコピーしたいのか、それとも特定のチャンネルのメッセージだけでしょうか?それらはすべて単一のトピックに追加されるのでしょうか?新しいトピックが作成されるトリガーは何でしょうか?
すべてのDiscordユーザーがこの機能を利用できるのでしょうか?
どこに保存されるのでしょうか?カテゴリなしで?
呼び出しチャンネル内のメッセージのみを、理想的には指定した停止点まで取得します。
より洗練された実装方法としては、以下のような手順があります。
- 投稿したい最初のメッセージで「返信」をクリック
- @YourDiscourseIntegrationBotAccount と入力し、末尾に
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 上でメッセージをプレビューし、最終確定を行える対話型ページをレンダリングします。
注意点:
- そのページにアクセスするユーザーのアクセス権限を確認し、トランスクリプトの不適切な開示を防ぐ必要があります。
現在、Slack から Trello、Trello から Discord へのリンクがありますので、Discord で投稿を作成するか、あるいは Trello から特定のトピック下に新しい投稿を作成したいと考えています。
投稿先が多すぎて時間が足りないんです! ![]()
ありがとう、見ておきますね。
おっと、失礼しました。Slack 統合のように、この統合は双方向に投稿されないとは気づいていませんでした。
一般的に疑問に思うのですが、なぜそのようなことをしたいのでしょうか?Discourse の長期記憶に雑談が混じって、かえってごちゃごちゃになってしまいますよ。
問題ありません。Discourse に投稿したいチャンネル投稿は、ゲームの新しいアップデートに関するお知らせです。同じ内容を複数の場所で投稿するのは非常に時間がかかるため、Discourse が忘れられがちになっています。そこで、私の作業負担を減らすと同時に、Discourse でのアクティビティ向上も目指しています。
とりあえず、これで妥協するしかなさそうな回避策を見つけました。
Trello を Discourse に接続してスレッドに返信するには Zapier を使う必要がありましたが(欠点は無料プランでは投稿数をカバーしきれないこと)、そのために専用のスレッドを作成しました。
今の流れは以下の通りです。
データベースの API から Slack に投稿 → Slack が Trello のカードを作成 → Trello から Discord と Discourse に投稿 ![]()
ただ、今は Discourse が Discord に再投稿してしまうというループが発生しています。私の投稿を除外する方法はありませんか?
関連機能を追加しました:Discord Bot Construction Kit 🤖 - #79 by merefield
「お知らせチャンネル」としてチャンネルを指定すると、そのチャンネルに入力されたすべてのメッセージが指定された Discourse トピックに投稿されます。
(この更新では、Discourse からの通知が同じチャンネルに Discord へコピーされた場合も監視されます)
私の実装でも同様の現象が起きますが、無限ループにはならず、投稿が追加されたことを確認するだけです。Discourse 上の Discord トピックを別の場所に配置し、監視されているカテゴリを避けることで回避できます。
おお、ありがとう!これなら他のサードパーティ製アプリを使う必要がなくなるかもしれない!画像リンクがどう処理されるか確認してみよう。
実は、あなたの指示があまり理解できていません。Discourseのメニューでプラグインの下にこれが見つからず、プラグインのインストール方法もわかりません。
プラグイントピックに、手順に関する具体的な問題を投稿してください。
現在の問題点は少し曖昧で、お手伝いが難しい状況です。まずは最初の投稿(OP)を十分に読み込み、その後、具体的な問題を投稿してください。喜んでお手伝いいたします。