Configurando e solucionando problemas de oneboxes

:bookmark: 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.

:person_raising_hand: 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:

  1. Acesse o painel de Administração
  2. Navegue até a seção de configurações do site
  3. 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 onebox
  • enable 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)

:warning: 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:

  1. 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
  2. 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
  3. 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)"

Recursos adicionais

2 curtidas

Este é um bom recurso, mas parece ficar aquém.

Fiz isso e ele retornou uma caixa, era leve em conteúdo, mas ainda parecia melhor do que um simples link de URL.

Assumindo que a falta de conteúdo é o problema para não aparecer em uma caixa no meu site, com base em não atender a este requisito, o que pode ser feito?

Não vejo uma configuração para colocar em uma caixa sites que não têm conteúdo suficiente, então um administrador do site pode ser contatado para fazer uma alteração do lado dele, se sim, o que precisa ser solicitado?

Como isso ajuda a resolver o problema de não aparecer em uma caixa?

2 curtidas