Gostaríamos de incluir um bot de terceiros em nosso site Discourse para ajudar novos usuários a entender do que se trata nossa comunidade antes de se juntarem e pagar uma taxa de adesão (via o plugin de assinatura). Gostaríamos de acionar esse bot a partir de postagens e CTAs em todo o site, por meio de um clique em um link ou botão, e iniciar um fluxo predefinido no bot.
O Bot (aqui está um exemplo) pode ser integrado por meio de um iframe ou deste script antes da tag de fechamento do body:
<script src="https://widget.flowxo.com/embed.js" data-fxo-widget="eyJ0aGVtZSI6IiM2N2MxOGUiLCJ3ZWIiOnsiYm90SWQiOiI1ZjYwNmFmZGJhYmU5NjAwNGIwODc4NTMiLCJ0aGVtZSI6IiM2N2MxOGUiLCJsYWJlbCI6IkV4YW1wbGVib3QifX0=" async defer></script>
Então eu (não programador
) criei um componente de tema com o código acima e um script adicional que aciona um fluxo específico quando um link com um determinado ID é clicado:
<script type="text/javascript">
// Aguarde a página carregar primeiro
window.onload = function() {
// Obtenha uma referência ao link na página
// com o ID "mylink"
var a = document.getElementById("mylink");
// Defina o código para ser executado quando o link for clicado
// atribuindo uma função ao "onclick"
a.onclick = function() {
// Seu código aqui...
FxoMessenger.create();
FxoMessenger.on('stateChanged', function(state) {
if (state === 'connected') {
FxoMessenger.sendMessage('Este é o texto que aciona o fluxo no bot!');
}
});
// Se você não quiser que o link realmente
// redirecione o navegador para outra página,
// "google.com" em nosso exemplo aqui, então
// retorne false no final deste bloco.
// Observe que isso também impede a propagação do evento,
// o que provavelmente é o que queremos aqui, mas nem sempre
// será o caso.
return false;
}
}
Isso funciona na teoria, mas, infelizmente, o ID é removido automaticamente de um link em uma postagem do Discourse. Existe alguma maneira de conseguir isso? Obrigado pela ajuda!