Фреймворк бота, передающий значения в бот ... Как получить их в коде Bot C# - PullRequest
0 голосов
/ 18 января 2020

Я передаю токен и идентификатор пользователя с веб-канала прямой линии. Я хочу знать, как получить эти значения на стороне бота, чтобы показать идентификатор пользователя или адрес электронной почты, переданный из канала прямой линии.

<html>
<div id="webchat" role="main" />
<head>
<script src="https://cdn.botframework.com/botframework-webchat/latest/webchat.js"></script>
</head>
<body>
<script>
  window.WebChat.renderWebChat({
      directLine: window.WebChat.createDirectLine({ token: '@Model.Token' }),
        userID: '@Model.UserId'
  }, 
  document.getElementById('webchat'));
</script>
</body>
<html>

1 Ответ

1 голос
/ 18 января 2020

Вы можете создать магазин, как показано ниже, и добавить c пользовательские данные channelData, я использовал simpleUpdatein Пакет для него

const store = window.WebChat.createStore(
            {},
            ({ dispatch }) => next => action => {
                if (action.type === 'DIRECT_LINE/POST_ACTIVITY') {
                    action = window.simpleUpdateIn(action, ['payload', 'activity', 'channelData', 'myData'], () => myDataObj);
                } 
                return next(action);
            }
        );

Затем добавить этот магазин в экземпляр прямой линии, например

window.WebChat.renderWebChat({
            directLine: window.WebChat.createDirectLine({
                token:  '@Model.Token', 
            }),
            userID: '@Model.UserId'
            store, 
        }, document.getElementById('webchat'));

Теперь на стороне бота вы можете получить к нему доступ через контекстный объект, полный путь ниже

dialogContext.Context.Activity.ChannelData

. Вы также можете взглянуть на этот Пример для получения дополнительной информации.

...