Este guia explica como configurar e solucionar problemas de oneboxes no Discourse. Ele abrange configurações de administrador, como funcionam os oneboxes e etapas para resolver problemas comuns.
Nível de usuário necessário: Administrador
Oneboxes são pré-visualizações de links ricas que os usuários podem criar em suas postagens. Embora os usuários possam gerar facilmente essas pré-visualizações, os administradores do site têm controles adicionais e podem precisar solucionar problemas quando os links não são pré-visualizados como esperado.
Configuração do administrador
Para gerenciar as configurações de onebox:
- Vá para o painel do Administrador
- Navegue até a seção de configurações do site
- Procure por “onebox”
Você verá uma lista de configurações relacionadas a onebox:
Algumas configurações notáveis incluem:
post onebox maxlength: Controla a quantidade de texto incluída em um oneboxenable inline onebox on all domains: Habilita oneboxes inline, convertendo URLs simples em títulos vinculados (por exemplo,https://en.wikipedia.org/wiki/Fun_(band)se torna “Fun (band) - Wikipedia”)blocked onebox domains: Permite desabilitar oneboxes para domínios específicos
Como funcionam os oneboxes
Quando um link é incluído em uma postagem, o Discourse visita a página de destino e procura por tags Open Graph ou oEmbed, incluindo:
- Endereço do site
- Título
- Imagem em destaque
- Ícone do site (ou favicon)
- Descrição (obrigatório)
- Preço do produto (se relevante)
O Discourse exige que a tag de descrição esteja presente e contenha texto suficiente para resumir a página. Sem isso, o link de destino não será convertido em onebox.
Aqui está um exemplo de onebox para \u003chttps://discourse.org\u003e que mostra o título do site, a imagem em destaque, o ícone e a descrição:
Solução de problemas
Se os oneboxes não estiverem funcionando como esperado, tente estas etapas:
-
Teste o site usando iFramely:
- Cole o link e verifique se ele está usando as meta tags OpenGraph ou oEmbed corretas
- Certifique-se de que o texto da descrição esteja presente e seja adequado
-
Verifique se a solicitação de onebox está sendo bloqueada:
- Alguns hosts podem bloquear user agents “desconhecidos”
- Verifique se o site de destino não está bloqueando o user agent do Discourse
-
Para links internos que não são exibidos como oneboxes:
- Certifique-se de que o link não esteja em uma categoria segura
- Links internos só geram oneboxes em categorias públicas ou dentro da mesma categoria por motivos de segurança
Do console do Rails, você pode invalidar/buscar explicitamente oneboxes chamando os métodos enquanto testa fazendo:
[1] pry(main)> Oneboxer.invalidate(url)
=> 0
[2] pry(main)> Oneboxer.onebox(url)
=> "<aside class=\"onebox …(elided)"
[3] pry(main)> InlineOneboxer.invalidate(url)
=> 0
[4] pry(main)> InlineOneboxer.onebox(url)
=> "<aside class=\"onebox …(elided)"
