JavaScriptを使って他のウェブサイトにDiscourseコメントを埋め込む

I believe this is possible now. The embed_url property can be set when you first create the topic. Our WordPress plugin does that here: wp-discourse/lib/discourse-publish.php at main · discourse/wp-discourse · GitHub. The embed_url property cannot be updated via the API after the topic has been created.

「いいね!」 3

That’s fantastic! Looks like the API docs need to be updated then!

What would it take to get the property added to the update API method? That would let me solve this properly.

「いいね!」 4

こんにちは。この方法でブログの投稿をフォーラムの投稿に関連付けるのに苦労しています。iframeのcontent-security-policyに関して、他のユーザーと同様の問題を抱えているようです。私のブログはJekyllによって生成され、githubでホストされており、DiscourseはDigital Oceanでホストされています。それぞれのURLはblendertube.comとforum.blendertube.comです。

ブラウザで報告されたエラーは次のとおりです。

forum.blendertube.com/’ をフレームに表示できませんでした。これは、先祖が次の Content Security Policy ディレクティブ「frame-ancestors ‘self’ blendertube.com」に違反しているためです。

これは、DiscourseインスタンスのSSLに関連していますか?

以下にスクリーンショットを示します。

皆さん、助けていただけると幸いです。よろしくお願いします!

「いいね!」 1

別のスクリーンショットを次に示します。

「いいね!」 1

WordPress WooCommerce の商品ページの URL に「current_page.url」を置き換える構文について、何かアイデアをお持ちの方はいらっしゃいますか?各ページでコードをカスタマイズする必要がなく、すべてのページに簡単に適用できるようにしたいと考えています。

discourseEmbedUrl の独自のドメイン値 'http://eviltrout.com<%= current_page.url %> を置き換えようとしましたが、WP では機能しませんでした。

「いいね!」 1

ここで必要なのは、新しい noindex, indexifembedded タグだと思います。

編集 @codinghorror は、同様のユースケース(トピックの埋め込み)で提起されたときにこれが良いアイデアだと考えていました。

「いいね!」 2

デフォルトのテーマがダークの場合、埋め込みテーマをライトにすることは可能ですか、またその方法はありますか?

私のブラウザに問題がなければ、@codinghorror の実装はそのようになっているようです。エレガントな方法はありますか? :smiley:

「いいね!」 2

もし他の人がこれを試す場合は、Thinkific LMSのレッスンにトピックを直接埋め込もうとした際に discourseEmbedUrl が機能しませんでしたが、topicId メソッドは機能したことに注意してください。

「いいね!」 1

ブログに Discourse コメントを埋め込むためにこの機能を使用していました (https://www.gyandhan.com/blogs/trending-scholarships-for-student-to-studying-abroad)。当初は問題なく動作していました。最近、新しいブログ (<1 年 :rofl:) では、この ケースのようにスラッグが作成されないという問題が発生しており、その結果、ハイパーリンクが正しくなくなっています。

スラッグ生成方法は ascii に設定されており、許可されているホストは www.gyandhan.com に設定されています。

<script type="text/javascript">
  DiscourseEmbed = { discourseUrl: 'https://discussions.gyandhan.com/',
                     discourseEmbedUrl: '<%= request.original_url.split('?').first %>' };

  (function() {
    var d = document.createElement('script'); d.type = 'text/javascript'; d.async = true;
    d.src = DiscourseEmbed.discourseUrl + 'javascripts/embed.js';
    (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(d);
  })();
</script>

明らかなことを繰り返しますが、私が気づいた問題は、埋め込みによって作成されたトピックにスラッグもタイトルも設定されていないことです。なぜこの問題が発生しているのか、まだよくわかりません。

「いいね!」 1

皆さん、こんにちは。初歩的な質問でしたらすみません。

私の理解では、埋め込みエクスペリエンスではスレッドの一部の投稿しか読み取れず、ウェブサイト内でやり取りすることはできない、ということで合っていますか? より多くのコメントを読み込もうとしたり、返信しようとしたり、プロフィールをクリックしようとすると、Discourse に戻されます。

Discourse 以外のサードパーティのウェブサイトで完全に機能する埋め込みエクスペリエンスのバージョンはありますか?

サイトがダークモードとライトモードを切り替えるとき、埋め込み部分に色モードを切り替えるよう通知するにはどうすればよいですか?

Embedding Allowed Hosts を以下のように設定しました。


しかし、iframe の body にクラスを追加しようとすると、iframe.contentDocument が null になり、document.getElementById("discourse-embed-frame").contentWindow.document を使用すると、以下のようなエラーが発生します。
image

Discourse を埋め込む iframe のサイトで、作成されたスレッドのタイトル(少なくともスラッグ)として使用する特定の文字列をどのように提供できますか? example.com/12345 のような埋め込み URL があり、テキストコンテンツが含まれていますが、スレッドはコンテンツの単語を使用することになります。しかし、私は「12345」を使用したいと考えています。

ドキュメントの<title>タグを読み取っていないのですか?

なるほど、それは理にかなっています。私のタイトルは「12345」よりも凝っていますが、時間とともに変化する可能性があり、一方「12345」は安定したままです。そのため、そちらを使用したいのです。

テストしたところ、スクレイパーは実際に <title>text</title> を取得していることがわかりました。これを <title>12345</title> に設定し、HTML ドキュメントの最後に <script>document.title = "fancy title";</script> を使用して人間向けのクライアントをオーバーライドすると、うまく機能します。作成されたスレッドはタイトルとスラッグ URL として「12345」を使用しますが、人間は埋め込みが発生しているページで素敵なタイトルを見ることができます。

ヒントをありがとうございます!

「いいね!」 2

皆さん、こんにちは。

#タグで任意のトピックから投稿を取得することは可能でしょうか
例えば、メインの(Discourseではない)ウェブサイトには、「My show」(/myshow)という名前で定義されたページがあります。

同様に、Discourseインスタンスには「The Show」に関する多くのトピックがあり、それらは同じハッシュタグ #theshow を持ち、シーズンやイベントの進行に合わせて人々がそれらをナビゲートできます。

そのアイデアは、#theshow タグを持つすべてのトピックから最新の投稿を取得することです。それは可能でしょうか?

それに最も近いのは、特定のタグの下にあるすべてのトピックをアクティビティ順に取得することです。Embedding a list of Discourse Topics in another site を参照してください。

「いいね!」 2

Jeffのブログのような埋め込みコメントで最初の投稿を防ぐ方法

編集: arivanandan/discourse-embed-complete: Includes first post while embedding discourse を使用していました🙂

1つのページに複数のトピックのコメントを埋め込むにはどうすればよいですか?