当サイト(https://meta.discourse.org/t/embedding-discourse-comments-via-javascript/31963/309)に Discourse を埋め込んでいます。Discourse は、当サイトのプレビューを含む投稿を作成します。クローラーのパラメータを変更したため、Discourse が埋め込まれているページのプレビューを再取得したいのですが、そのような埋め込み投稿を再作成・再取得する方法はありますか?
「rebaking」は役に立ちますか?コンソールにそのようなコマンドはありますか?
TopicEmbed.find_remote(url) が、何を取得するかを表示するのに役立つことがわかりました。
ソースを確認したところ、以下のコードが動作する解決策であることが分かりました:
username = SiteSetting.embed_by_username.downcase
user = User.where(username_lower: username.downcase).first
embed_url = "http://www.example.org" # または以下のようにトピックから URL を取得
TopicEmbed.import_remote(user, embed_url)
これは TopicRetriever.fetch_http から引用したものです (discourse/lib/topic_retriever.rb at 888e68a1637ca784a7bf51a6bbb524dcf7413b13 · discourse/discourse · GitHub)
ここで embed_url は、Discourse が埋め込まれているサイトの URL です。topic_id という番号を持つトピックから取得する場合、以下のように記述できます。
embed_url = TopicEmbed.where(topic: topic_id)[0].embed_url
単に再取得するだけなのに、これは少し複雑に感じられます。この方法で正しいのでしょうか?もっと簡単な方法はありませんか?