Javascript 我们可以为window.WebChat.render WebChat使用哪个参数,以便提供自定义URL参数?使用azurebot框架Nodejs
将自定义参数从webchat控件传递到bot框架 哪一个与bot URL相关,我们要获取/呈现? i、 e.更详细的例子 情景:Javascript 我们可以为window.WebChat.render WebChat使用哪个参数,以便提供自定义URL参数?使用azurebot框架Nodejs,javascript,botframework,web-chat,Javascript,Botframework,Web Chat,将自定义参数从webchat控件传递到bot框架 哪一个与bot URL相关,我们要获取/呈现? i、 e.更详细的例子 情景: window.WebChat.renderWebChat({ directLine: window.WebChat.createDirectLine({ token: token, .... ... customUrl : "mybot.net?q1=abc
window.WebChat.renderWebChat({
directLine: window.WebChat.createDirectLine({
token: token,
....
...
customUrl : "mybot.net?q1=abc&&q2=xyz
}),
styleSet: styleSet,
store: store
}, document.getElementById('webchat'));
document.querySelector('#webchat > *').focus();
是否可以将不同的url参数与令牌一起传递,即bot根据参数呈现特定功能,即q2=xyz体育相关问题卡 否,创建直线对象时无法发送特定参数。Direct Line参数是该服务的专有参数-无法检索您发送的任何自定义值 但是,在Web聊天客户端/用户和bot之间发送数据的公认方法是使用Web聊天
存储和调度()
功能。存储
广播多种功能,例如直连/连接
和直连/传入活动
(以及其他),允许您在触发时执行功能
在您的情况下(不知道全部细节),您可能希望在Web聊天加载后将值作为事件发送。代码如下所示:
(异步函数(){
const store=window.WebChat.createStore({},({dispatch})=>next=>async action=>{
如果(action.type==='DIRECT\u LINE/CONNECT\u completed'){
console.log('Event dispatched');
调度({
键入:“网络聊天/发送事件”,
有效载荷:{
名称:“自定义参数”,
值:{q1:'abc',q2:'xyz'}
}
} )
}
返回下一步(操作);
});
[...]
window.WebChat.renderWebChat(
directLine:window.WebChat.createDirectLine({token}),
商店:商店
/>,
getElementById('webchat');
)
})
在您的bot中,您将利用onEvent()
活动处理程序捕获已调度事件:
this.onEvent=async(上下文,下一步)=>{
console.log(“检测到事件活动”);
const{activity}=上下文;
if(activity&&activity.name==“自定义参数”){
wait context.sendActivity('Custom parameters received!');
}
等待下一个();
};
您可以参考多种方法,详细说明如何实现不同的功能,包括如何发送、接收和处理Web聊天中的特定数据点
希望有帮助 否,创建直线对象时无法发送特定参数。Direct Line参数是该服务的专有参数-无法检索您发送的任何自定义值
但是,在Web聊天客户端/用户和bot之间发送数据的公认方法是使用Web聊天存储和调度()
功能。存储
广播多种功能,例如直连/连接
和直连/传入活动
(以及其他),允许您在触发时执行功能
在您的情况下(不知道全部细节),您可能希望在Web聊天加载后将值作为事件发送。代码如下所示:
(异步函数(){
const store=window.WebChat.createStore({},({dispatch})=>next=>async action=>{
如果(action.type==='DIRECT\u LINE/CONNECT\u completed'){
console.log('Event dispatched');
调度({
键入:“网络聊天/发送事件”,
有效载荷:{
名称:“自定义参数”,
值:{q1:'abc',q2:'xyz'}
}
} )
}
返回下一步(操作);
});
[...]
window.WebChat.renderWebChat(
directLine:window.WebChat.createDirectLine({token}),
商店:商店
/>,
getElementById('webchat');
)
})
在您的bot中,您将利用onEvent()
活动处理程序捕获已调度事件:
this.onEvent=async(上下文,下一步)=>{
console.log(“检测到事件活动”);
const{activity}=上下文;
if(activity&&activity.name==“自定义参数”){
wait context.sendActivity('Custom parameters received!');
}
等待下一个();
};
您可以参考多种方法,详细说明如何实现不同的功能,包括如何发送、接收和处理Web聊天中的特定数据点
希望有帮助 接受/向上投票答案服务于更大的堆栈溢出社区和任何有类似问题的人。如果你觉得我的回答足够,请“接受”并投票表决。如果没有,让我知道我还能提供什么帮助!接受/向上投票答案服务于更大的堆栈溢出社区和任何有类似问题的人。如果你觉得我的回答足够,请“接受”并投票表决。如果没有,让我知道我还能提供什么帮助!