tl;dr: コメントを埋め込む際にdiscourseUrlフィールドを設定した場合、Discourseはページを解析する際にそのフィールドを読み取るのか、それともページを解析するためのリクエストの一部としてのみ使用するのか?
こんにちは!
Discourseをフォーラムとして使用しており、HappyCoding.ioの投稿にコメントを埋め込んでいます。
- 埋め込みコメントのあるページの例はこちらです: Isometric Cubes - Happy Coding
- 対応するDiscourseの投稿はこちらです: https://forum.happycoding.io/t/isometric-cubes/738
過去数週間、メインサイトのページを /examples ディレクトリから /tutorials ディレクトリに移動させていました。メインページにはリダイレクトを設定したので、古いリンクは引き続き機能します。また、大量の新しいDiscourse投稿が生成されるのを避けるために、既存のページの埋め込みコードには、埋め込み用のURLとして古いURLを使用するようにしました。
これはほとんど問題なく機能していましたが、数週間経った今、Discourseにランダムな新しい投稿が表示され始めています。これらは新しいURLから生成されているようです。つまり、https://happycoding.io/tutorials/p5js/creating-classes/isometric-cubes の既存のDiscourse投稿があり、古いURL https://happycoding.io/examples/p5js/creating-classes/isometric-cubes を使用しているにもかかわらず、新しいURLのみを使用する https://happycoding.io/tutorials/p5js/creating-classes/isometric-cubes の新しい投稿が表示されています。
これは、私以外(私ではない誰か)が私のサイトのローカルバージョンを実行しており、古いURLを discourseEmbedUrl として渡していないために発生していると考えています。これが悪意のあるものかどうかはわかりません。私のコードが間違ったことをしていた数時間(このコミット と このコミット の間)がありました。誰かがコードのバージョンを間違って実行しているというのは奇妙に思えますが、これ以外にこれらのDiscourse投稿を生成する原因として考えられるものはありません。
背景情報が多くて申し訳ありませんが、私の質問は以下の通りです。
- まず、これまでの説明で合っていますでしょうか? Discourseの埋め込みについて理解しているつもりですが、何か見落としているかもしれません。
- Embed Discourse comments on another website via Javascript で説明されているように
discourseUrlを設定した場合、DiscourseはそのURLをリクエストの一部としてのみ認識するのか、それともページを解析する際にページから読み取るのか? (私のサイトで設定しても役に立たないため、質問しています。リクエストは他人から来ているからです。) - 他のユーザーが私のDiscourseインスタンスにリクエストを送信し、間違ったURLの投稿を作成するのを防ぐために、他にどのようなアプローチがありますか? 埋め込み投稿はすでに非公開にしていますが、ウェブサイトにページを追加するたびにDiscourseの投稿を承認する必要がないようにしたいです。
計画よりも長くなってしまい申し訳ありません。ご協力いただければ幸いです!