在哪里可以找到网络聊天的类型值

Where to Find the Type Values for the Web Chat

对于在 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 can be found in the BotFramework-WebChat repo. There isn't any specific documentation provided that describes each action, but in a number of cases you can refer to the provided samples 有关如何实施的示例。从那里,您可以推断如何实施其他操作。

所有类型(例如,WEB_CHAT/START_DICTATE),都可以在调用时进行检查以捕获。此外,每个都可以作为导出函数使用,这意味着,就像您提供的代码一样,可以因为或支持已经发生的其他一些 activity 来分派一个动作。

这是我在网络聊天测试实例中使用的一小段代码。 this 来自的 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);
}

这是当在托管页面上触发特定事件时我 post 返回 Web Chat 的消息示例:

store.dispatch( {
  type: 'WEB_CHAT/SEND_MESSAGE',
  payload: {
     text: `Calendar event added`
  }
} );

希望得到帮助!