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.

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
no GitHub se achar útil.



