Este guia explica como configurar e solucionar problemas de oneboxes no Discourse. Ele abrange as configurações de administrador, como os oneboxes funcionam e as 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 do onebox:
- Acesse o painel de Administração
- Navegue até a seção de configurações do site
- Pesquise por “onebox”
Você verá uma lista de configurações relacionadas ao 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 embutidos, 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 os oneboxes funcionam
Quando um link é incluído em uma postagem, o Discourse acessa 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 https://discourse.org/ 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 adequado
-
Verifique se a solicitação do onebox está sendo bloqueada:
- Alguns hosts podem bloquear agentes de usuário “desconhecidos”
- Verifique se o site de destino não está bloqueando o agente de usuário do Discourse
-
Para links internos que não estão sendo 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 razões de segurança
A partir do console rails, você pode invalidar/buscar explicitamente os oneboxes chamando os métodos enquanto testa, fazendo:
[1] pry(main)=> Oneboxer.invalidate(url)
=> 0
[2] pry(main)=> Oneboxer.onebox(url)
=> "…<aside class=\"onebox …(elidido)"
[3] pry(main)=> InlineOneboxer.invalidate(url)
=> 0
[4] pry(main)=> InlineOneboxer.onebox(url)
=> "…<aside class=\"onebox …(elidido)"
