Vorremmo includere un bot di terze parti nel nostro sito Discourse per aiutare i nuovi utenti a comprendere di cosa si occupa la nostra comunità prima di unirsi e pagare una quota di adesione (tramite il plugin di sottoscrizione). Vorremmo attivare questo bot tramite post e call-to-action sul sito, cliccando su un link o un pulsante, per avviare un flusso predefinito nel bot.
Il Bot (ecco un esempio) può essere integrato tramite un iframe o con questo script prima del tag di chiusura del body:
<script src="https://widget.flowxo.com/embed.js" data-fxo-widget="eyJ0aGVtZSI6IiM2N2MxOGUiLCJ3ZWIiOnsiYm90SWQiOiI1ZjYwNmFmZGJhYmU5NjAwNGIwODc4NTMiLCJ0aGVtZSI6IiM2N2MxOGUiLCJsYWJlbCI6IkV4YW1wbGVib3QifX0=" async defer></script>
Quindi io (non programmatore
) ho creato un componente del tema con il codice sopra e uno script aggiuntivo che attiva un flusso specifico quando viene cliccato un link con un determinato ID:
<script type="text/javascript">
// Attendere che la pagina sia caricata
window.onload = function() {
// Ottenere un riferimento al link nella pagina
// con ID "mylink"
var a = document.getElementById("mylink");
// Impostare il codice da eseguire quando il link viene cliccato
// assegnando una funzione a "onclick"
a.onclick = function() {
// Il tuo codice qui...
FxoMessenger.create();
FxoMessenger.on('stateChanged', function(state) {
if (state === 'connected') {
FxoMessenger.sendMessage('Questo è il testo che attiva il flusso nel bot!');
}
});
// Se non vuoi che il link reindirizzi effettivamente
// il browser a un'altra pagina,
// "google.com" nel nostro esempio qui, allora
// restituisci false alla fine di questo blocco.
// Nota che questo previene anche la propagazione dell'evento,
// che probabilmente è ciò che vogliamo qui, ma non
// sarà sempre il caso.
return false;
}
}
Questo funziona in teoria, ma, purtroppo, l’ID viene rimosso automaticamente da un link in un post di Discourse. Esiste un modo per ottenere questo risultato? Grazie per il vostro aiuto!