我的目标是根据用户所在的页面触发 Microsoft Power Virtual Agent 服务中的特定聊天流。我还没有找到一种方法来自定义 Microsoft 服务,以便使用这些说明动态地从特定聊天主题开始,而不是一个固定的主题。
我想使用 jQuery 预填充动态生成的文本字段:
$('.webchat__send-box-text-box__input').val('red');
上面的代码在我看到“红色”这个词非常短暂地出现在文本框中,但随后它被生成输入字段的代码覆盖。如果我在加载完所有内容后从浏览器控制台手动运行上述脚本,它工作正常。
有没有办法自定义 Microsoft 网络聊天代码以让用户开始特定流程,或者我可以自动插入正确的单词,以便自动将用户带到相关聊天流程的开始?如果我可以在 webchat JS 代码中设置一个从一开始就设置主题的参数,那就太好了,但我没有找到任何说明表明这是可能的——只是一些基本的样式参数。
这是来自 Microsoft 的生成网络聊天界面的代码:
<script src="https://cdn.botframework.com/botframework-webchat/latest/webchat.js"></script>
<script>
const styleOptions = {
// Add styleOptions to customize web chat canvas
hideUploadButton: true
};
// Add your BOT ID below
var BOT_ID = "[BOT ID VALUE REDACTED]";
var theURL = "https://powerva.microsoft.com/api/botmanagement/v1/directline/directlinetoken?botId=" + BOT_ID;
const store = window.WebChat.createStore(
{},
({ dispatch }) => next => action => {
if (action.type === "DIRECT_LINE/CONNECT_FULFILLED") {
dispatch({
meta: {
method: "keyboard",
},
payload: {
activity: {
channelData: {
postBack: true,
},
//Web Chat will show the 'Greeting' System Topic message which has a trigger-phrase 'hello'
name: 'startConversation',
type: "event"
},
},
type: "DIRECT_LINE/POST_ACTIVITY",
});
}
return next(action);
}
);
fetch(theURL)
.then(response => response.json())
.then(conversationInfo => {
window.WebChat.renderWebChat(
{
directLine: window.WebChat.createDirectLine({
token: conversationInfo.token,
}),
store: store,
styleOptions: styleOptions
},
document.getElementById('webchat');
);
})
.catch(err => console.error("An error occurred: " + err));
</script>