Javascript 我们可以为window.WebChat.render WebChat使用哪个参数,以便提供自定义URL参数?使用azurebot框架Nodejs

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

将自定义参数从webchat控件传递到bot框架 哪一个与bot URL相关,我们要获取/呈现? i、 e.更详细的例子 情景:

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聊天中的特定数据点


希望有帮助

接受/向上投票答案服务于更大的堆栈溢出社区和任何有类似问题的人。如果你觉得我的回答足够,请“接受”并投票表决。如果没有,让我知道我还能提供什么帮助!接受/向上投票答案服务于更大的堆栈溢出社区和任何有类似问题的人。如果你觉得我的回答足够,请“接受”并投票表决。如果没有,让我知道我还能提供什么帮助!