微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在何处查找网络聊天的类型值

如何解决在何处查找网络聊天的类型值

对于在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 举报,一经查实,本站将立刻删除。