discourse(prod)> TopicEmbed.find_by(topic_id: 157441).as_json
Serializing ActiveRecord models (TopicEmbed) without specifying fields is not allowed. Use a Serializer, or pass the :only option to #serializable_hash. More info: ``https://meta.discourse.org/t/-/314495
=>
{"id"=>56685,
"topic_id"=>157441,
"post_id"=>483289,
"embed_url"=>
"``https://tecnoblog.net/noticias/paramount-oferece-us-108-bilhoes-em-dinheiro-para-tomar-warner-da-netflix”``,
"content_sha1"=>nil,
"created_at"=>"2025-12-08T17:54:07.585Z",
"updated_at"=>"2025-12-09T18:04:33.539Z",
"deleted_at"=>nil,
"deleted_by_id"=>nil,
"embed_content_cache"=>""}
discourse(prod)>
Você poderia apenas executar o mesmo comando novamente, mas desta vez:
./launcher enter app
rails c
TopicEmbed.find_by(topic_id: 157441).embed_url
Se o que você compartilhou é de fato o valor de embed_url no seu banco de dados, então esse é o problema, e eu farei um pequeno PR para discourse/discourse para lidar com casos extremos como este, onde o embed_url acabou em um estado malformado.
About this backticks at the begining and ending of the url, i think it was just an error trying to format the text here in the topic, using the code button.
Então todo o problema aqui é porque o PR acima começou a remover barras finais do TopicEmbed em janeiro deste ano? Eu me sinto dividido sobre essa mudança. Eu preferiria que respeitássemos o que o administrador nos envia, para ser honesto.
De fato, não está seguindo os redirecionamentos. O fórum está rodando no mesmo servidor/espaço de IP que o blog? Isso pode estar acionando nossa proteção SSRF.
Se for esse o caso, você precisa permitir isso definindo allowed_internal_hosts.
O motivo pelo qual fizemos essa mudança é que havia uma inconsistência entre como os embeds do WP Discourse e os embeds de javascript funcionavam. Os embeds de javascript sempre normalizaram a URL. Os embeds do WP Discourse chegavam por uma rota diferente e não estavam normalizando a URL (até fazermos a mudança). Isso levou a algumas outras inconsistências.
Outro problema é que, quando executo um curl para a API, procurando o ID do tópico de uma URL de incorporação (embed URL), não consigo encontrá-lo por causa da barra final (trailing slash). O Discourse retorna uma página 404.
Mas se eu remover a barra final, ele retorna o valor:
Para funcionar, eu precisaria fazer um str_replace no WordPress, para remover a barra final do permalink, antes de verificar. Mas isso não faz sentido, o URL canônico tem a barra final…
Na prática, o Discourse está normalizando o permalink para um URL que não existe… a versão normalizada deveria ser a que tem a barra final.
Claro! Isso não afetará o recurso “Postagem Completa”, pois agora podemos seguir redirecionamentos em sites no mesmo domínio do fórum, mas você pode continuar em um novo tópico para outras preocupações.