Configurando e solucionando problemas de oneboxes

:bookmark: Este guia explica como configurar e solucionar problemas de oneboxes no Discourse. Ele abrange configurações de administrador, como as oneboxes funcionam e etapas para resolver problemas comuns.

:person_raising_hand: Nível de usuário necessário: Administrador

Oneboxes são pré-visualizações de links enriquecidas 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 conforme o esperado.

Configuração do administrador

Para gerenciar as configurações de 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 a onebox:

Algumas configurações notáveis incluem:

  • post onebox maxlength: Controla a quantidade de texto incluída em uma onebox
  • max oneboxes per post: Limita o número de oneboxes que podem aparecer em uma única postagem (padrão: 50)
  • enable inline onebox on all domains: Habilita oneboxes em linha em todos os domínios, convertendo URLs simples em títulos vinculados (por exemplo, https://en.wikipedia.org/wiki/Fun_(band) torna-se “Fun (band) - Wikipedia”). Isso está habilitado por padrão.
  • blocked onebox domains: Permite desabilitar oneboxes para domínios específicos
  • block onebox on redirect: Quando habilitado, impede a criação de onebox para URLs que redirecionam para um destino diferente

Como as oneboxes funcionam

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ória)
  • 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 as oneboxes não estiverem funcionando conforme o esperado, tente estas etapas:

  1. Teste o site usando iFramely:

    • Cole o link e verifique se ele está usando as tags meta OpenGraph ou oEmbed corretas
    • Certifique-se de que o texto da descrição esteja presente e adequado
  2. Verifique se a solicitação de onebox está sendo bloqueada:

    • Alguns servidores 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 são exibidos como oneboxes:

    • Certifique-se de que o link não esteja em uma categoria segura
    • Links internos só geram onebox em categorias públicas ou dentro da mesma categoria por motivos de segurança

A partir do console do Rails, você pode invalidar/buscar explicitamente as oneboxes chamando os métodos durante os testes, 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.lookup(url)
=> {url: "https://example.com", title: "Example Page Title"}

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