Assistente Onebox, rastreie essas visualizações de forma confiável!

O que faz

Transforma esse tipo de resultado:

(onde seu servidor falhou ao recuperar o código-fonte da página e, portanto, não pode extrair as tags necessárias para criar o onebox)

Nisso aqui!:

Ele simplesmente fornece um caminho alternativo para o onebox obter o código-fonte da página para buscar metadados quando o servidor de destino recusa sua conexão.

Ele não altera nada sobre como o onebox processa o código-fonte da página para encontrar os metadados e renderizar a caixa.

Ele foi criado para permitir que você insira os detalhes e credenciais de uma API de terceiros para recuperar a página em vez de fazer uma chamada HTTP normal diretamente para a página de destino.

Por que

Descobri que meus servidores estavam sendo impedidos de acessar vários sites comerciais, fazendo com que os oneboxes falhassem na renderização. Isso essencialmente ajuda a aproveitar a confiabilidade da API de terceiros, um pouco como um serviço de e-mail.

Por que é econômico

Você pode usar um VPS relativamente barato e ainda obter funcionalidade confiável de one-boxing, mesmo que seu IP ou user agent esteja de alguma forma “na lista negra”.

Você não precisa disso se

Você já consegue fazer onebox de todo o seu conteúdo de destino corretamente com a instalação padrão e todos os usuários estão satisfeitos.

Pré-requisitos

Você precisa de uma conta com uma API de terceiros adequada.

Configurações

onebox assistant api base address:  https://api.embed.rocks/api/

O exemplo acima usa o embed.rocks, mas no futuro o suporte a outras APIs pode ser adicionado; no entanto, o embed.rocks oferece bom custo-benefício atualmente.

onebox assistant api base query:   ?url=

onebox assistant api options:   &skip=article,description,oembed,imextra&include=source

onebox assistant api page source field:   source

Você também precisará inserir sua chave de API fornecida pelo embed.rocks.

Veja o exemplo abaixo:

Essa configuração permite ignorar o prefetch (para verificar se a raspagem direta retorna um resultado) e usar a API desde o início.

image
padrão DESATIVADO

Recomendo definir isso como VERDADEIRO.

Isso é mais caro, é claro, mas frequentemente produz melhores resultados, pois há casos em que o prefetch é redirecionado para a página errada porque você não é confiável.

Informações de suporte

Lembre-se: se você já tentou fazer onebox de um link anteriormente, o núcleo do Discourse armazenará o resultado em cache.

Você pode adicionar uma string de consulta aleatória no final para contornar o cache: https://mylink.com/todaynews?random=random

Você também pode verificar se a API está respondendo, por exemplo:

curl -X GET "https://api.embed.rocks/api/?url=https%3A%2F%2Fnews.bbc.co.uk%0A&skip=article,description,oembed,imextra&include=source" -H "x-api-key: %%%sua-chave-api%%%"

Você precisa codificar em URL o site que está chamando (o valor do parâmetro url) usando algum site como este (não garantimos a confiabilidade!).

Limitações conhecidas

  • Foi testado apenas com um provedor no momento e não foi testado em outros. Esse provedor é https://embed.rocks (com quem não tenho afiliação). Estou disposto a considerar o suporte a mais serviços se o trabalho for patrocinado.

  • A modificação (monkey patching) é feita no nível do método. Isso substitui mais código do que o necessário, o que aumenta o risco de o plugin quebrar após uma atualização do núcleo. No entanto, não acho que haja uma maneira de minimizar isso ainda mais?

Como instalar plugins

Veja o guia aqui: Install plugins on a self-hosted site

Este repositório é: https://github.com/merefield/discourse-onebox-assistant

https://github.com/merefield/discourse-onebox-assistant

Todos os feedbacks são bem-vindos. Por favor, dê uma :star: no GitHub se achar útil.

41 curtidas