如何解决在何处查找网络聊天的类型值
对于在Health Bot Container Sample处找到的以下javascript代码段,该代码示例中的字符串文字值,有人知道它们来自何处吗?我在哪里可以找到Microsoft文档,对其进行更多说明,并找到有关提供和使用的其他字符串文字值的更多信息?我在代码段中引用的字符串文字值是:“ DIRECT_LINE / CONNECT_FULFILLED”,“ DIRECT_LINE / POST_ACTIVITY”。
目前,我不知道可以使用什么,也不知道在哪里可以找到一些Microsoft文档,其中详细介绍了此内容。我四处搜寻,但是没有运气。我尝试搜索Microsoft的一些文档,但也没有运气。
我能够在此人的page上找到一些东西,但是我不确定这是完整列表还是部分列表。
const store = window.WebChat.createStore({},function(store) { return function(next) { return function(action) {
if (action.type === 'DIRECT_LINE/CONNECT_FULFILLED') {
store.dispatch({
type: 'DIRECT_LINE/POST_ACTIVITY',Meta: {method: 'keyboard'},payload: {
activity: {
type: "invoke",name: "InitConversation",locale: user.locale,value: {
// must use for authenticated conversation.
jsonWebToken: jsonWebToken,// Use the following activity to proactively invoke a bot scenario
/*
triggeredScenario: {
trigger: "{scenario_id}",args: {
myVar1: "{custom_arg_1}",myVar2: "{custom_arg_2}"
}
}
*/
}
}
}
});
}
return next(action);
}}});
解决方法
可以在action types存储库中找到各种BotFramework-WebChat。没有提供任何描述每个操作的特定文档,但是在许多情况下,您可以参考提供的samples来获取有关如何实现的示例。从那里,您可以推断如何执行其他操作。
可以检查所有类型(例如WEB_CHAT/START_DICTATE
)在被调用时是否捕获。此外,每个函数都可以作为导出函数使用,这意味着,就像您提供的代码一样,由于发生了其他活动或支持发生的其他一些活动,因此可以调度动作。
这是我在Web聊天的测试实例中使用的一小段代码。 switch语句来自检查动作类型。当他们这样做时,我将执行其他一些操作。
case 'DIRECT_LINE/UPDATE_CONNECTION_STATUS':
if (action.payload) {
let connectionType;
switch (action.payload.connectionStatus) {
case 0:
connectionType = 'UNINITIATED';
break;
case 1:
connectionType = 'CONNECTING';
break;
case 2:
connectionType = 'ONLINE';
break;
case 3:
connectionType = 'TOKEN_EXPIRED';
break;
case 4:
connectionType = 'FAILED_TO_CONNECT';
break;
case 5:
connectionType = 'ENDED';
break;
default:
connectionType = 'ERROR_GETTING_CONNECTION_STATUS'
}
console.log(`DIRECT_LINE >> UPDATED_CONNECTION_STATUS: ${ connectionType }`);
}
return next(action);
case 'DIRECT_LINE/RECONNECT':
reconnect(store,action,userName);
return next(action);
case 'DIRECT_LINE/CONNECT':
connect(store,action);
return next(action);
case 'DIRECT_LINE/CONNECT_FULFILLED':
connectFulfilled(store,action);
return next(action);
case 'DIRECT_LINE/DISCONNECT':
disconnectMsg(action.type)
return next(action);
case 'DIRECT_LINE/DISCONNECT_FULFILLED':
disconnectFulfilled(store,action);
return next(action);
case 'DIRECT_LINE/INCOMING_ACTIVITY':
incomingActivity(store,action);
return next(action);
case 'DIRECT_LINE/POST_ACTIVITY':
postActivity(store,action);
return next(action);
default:
return next(action);
}
以下是在托管页面上触发特定事件时我发回Web聊天的消息的示例:
store.dispatch( {
type: 'WEB_CHAT/SEND_MESSAGE',payload: {
text: `Calendar event added`
}
} );
希望有帮助!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。