Передача пользовательских параметров из элемента управления веб-чата в структуру бота - PullRequest
0 голосов
/ 18 января 2019

Итак, я сейчас использую это:

<!DOCTYPE html>
<html>
  <body>
    <div id="webchat"></div>
    <script src="https://cdn.botframework.com/botframework-webchat/preview/botchat.js"></script>
    <script>
      window.WebChat.renderWebChat({
        directLine: window.WebChat.createDirectLine({ secret: 'YOUR_BOT_SECRET_FROM_AZURE_PORTAL' })
      }, document.getElementById('webchat'));
    </script>
  </body>
</html>

и работает нормально, однако у меня есть несколько баз знаний QnA для разных клиентских приложений. Итак, я бы хотел передать пользовательский параметр для 'applicationname', чтобы определить QNA KB в моей работе с BOT (V4) в методе OnTurnAsync.

Я пытался

var d1 = window.WebChat.createDirectLine({ token })
window.WebChat.renderWebChat({
        directLine: d1,
         styleSet,
postActivity: activity => {
     var newActivity = Object.assign({}, activity, {channelData: { "userparam": "test" } });
     return dl.postActivity(newActivity);
    }

}, document.getElementById('webchat'));
})();

но Context.Activity.ChannelData в боте, возвращающем Null

а также пробовал

var d1 = window.WebChat.createDirectLine({ token })
window.WebChat.renderWebChat({
        directLine: d1,
        user: { id: 'userid', userparam:'test'},
            styleSet

}, document.getElementById('webchat'));
})();

still Context.Activity.From.Properties ["userparam"] возвращает значение Null

1 Ответ

0 голосов
/ 24 января 2019

С Тихой Стороны

var d1 = window.WebChat.createDirectLine({ token })
window.WebChat.renderWebChat({
        directLine: Object.assign({}, d1, {
     postActivity: activity => {
     var newActivity = Object.assign({}, activity, { channelData: { "param1": "test" } });
     return d1.postActivity(newActivity);
    }
  }),
            styleSet,
            botAvatarInitials: 'CAB',
            userAvatarInitials: 'You'

}, document.getElementById('webchat'));
})();

от BOt Framework

var channelObj = turnContext.Activity.ChannelData.ToString();
var channeldata = Newtonsoft.Json.Linq.JObject.Parse(channelObj);
var customdata = channeldata["param1"].ToString();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...