Я внедрил Discourse на свой сайт (Embed Discourse comments on another website via Javascript - #309 by eviltrout). 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 — это URL сайта, на который встроено Discourse, полученный из темы с номером topic_id. Это может выглядеть так:
embed_url = TopicEmbed.where(topic: topic_id)[0].embed_url
Это кажется немного сложным просто для повторного получения данных. Правильно ли это вообще? Есть ли более простой способ?