Nos gustaría incluir un bot de terceros en nuestro sitio Discourse para ayudar a los nuevos usuarios a comprender de qué trata nuestra comunidad antes de unirse y pagar una cuota de membresía (a través del plugin de suscripciones). Nos gustaría activar este bot desde publicaciones y llamadas a la acción (CTA) en todo el sitio mediante un enlace o un clic en un botón, e iniciar un flujo predefinido en el bot.
El bot (aquí hay un ejemplo) se puede integrar mediante un iframe o mediante este script antes de la etiqueta de cierre del body:
<script src="https://widget.flowxo.com/embed.js" data-fxo-widget="eyJ0aGVtZSI6IiM2N2MxOGUiLCJ3ZWIiOnsiYm90SWQiOiI1ZjYwNmFmZGJhYmU5NjAwNGIwODc4NTMiLCJ0aGVtZSI6IiM2N2MxOGUiLCJsYWJlbCI6IkV4YW1wbGVib3QifX0=" async defer></script>
Así que yo (no programador
) construí un componente de tema con el código anterior y un script adicional que activa un flujo específico cuando se hace clic en un enlace con un ID determinado:
<script type="text/javascript">
// Esperar a que la página se cargue primero
window.onload = function() {
// Obtener una referencia al enlace en la página
// con el ID "mylink"
var a = document.getElementById("mylink");
// Establecer el código a ejecutar cuando se hace clic en el enlace
// asignando una función a "onclick"
a.onclick = function() {
// Tu código aquí...
FxoMessenger.create();
FxoMessenger.on('stateChanged', function(state) {
if (state === 'connected') {
FxoMessenger.sendMessage('¡Este es el texto que activa el flujo en el bot!');
}
});
// Si no quieres que el enlace redirija realmente
// el navegador a otra página,
// "google.com" en nuestro ejemplo aquí, entonces
// devuelve false al final de este bloque.
// Ten en cuenta que esto también evita la propagación del evento,
// lo cual probablemente es lo que queremos aquí, pero no siempre
// será el caso.
return false;
}
}
Esto funciona en teoría, pero, lamentablemente, el ID se elimina automáticamente de un enlace en una publicación de Discourse. ¿Hay alguna manera de lograr esto? ¡Gracias por tu ayuda!