我们希望在 Discourse 站点中集成一个第三方聊天机器人,帮助新用户在他们加入社区并支付会员费(通过 订阅插件)之前了解我们的社区宗旨。我们希望通过站点内的帖子和号召性用语(CTA)中的链接或按钮点击来触发该机器人,并启动预设的对话流程。
该机器人(示例链接)可以通过 iframe 嵌入,或在 </body> 标签前插入以下脚本进行集成:
<script src="https://widget.flowxo.com/embed.js" data-fxo-widget="eyJ0aGVtZSI6IiM2N2MxOGUiLCJ3ZWIiOnsiYm90SWQiOiI1ZjYwNmFmZGJhYmU5NjAwNGIwODc4NTMiLCJ0aGVtZSI6IiM2N2MxOGUiLCJsYWJlbCI6IkV4YW1wbGVib3QifX0=" async defer></script>
因此,我(非程序员
)构建了一个主题组件,包含上述代码以及一个额外的脚本,用于在点击具有特定 ID 的链接时触发特定的流程:
<script type="text/javascript">
// 等待页面加载完成
window.onload = function() {
// 获取页面上 ID 为 "mylink" 的链接引用
var a = document.getElementById("mylink");
// 设置链接点击时执行的代码
// 通过为 "onclick" 分配一个函数实现
a.onclick = function() {
// 此处填写你的代码...
FxoMessenger.create();
FxoMessenger.on('stateChanged', function(state) {
if (state === 'connected') {
FxoMessenger.sendMessage('这是触发机器人流程的文本!');
}
});
// 如果你不希望链接实际跳转到另一个页面,
// 例如我们示例中的 "google.com",
// 则在此块末尾返回 false。
// 请注意,这也会阻止事件冒泡,
// 这可能是我们想要的行为,但并不总是适用。
return false;
}
}
理论上这应该可以工作,但不幸的是,Discourse 帖子中的链接会自动移除其 ID。请问是否有办法实现这一需求?感谢帮助!