Как перехватить сообщение от Chatbot в компоненте React?(Microsoft botframework-webchat) - PullRequest
0 голосов
/ 04 июня 2018

Я должен запустить саундтрек (mp3-файл) в соответствии с ответом Chatbot.Поэтому мне нужно определить ответ, который приходит от chatbot из моего компонента React (или с использованием чистого JS).Как я могу это сделать?

Ответы [ 2 ]

0 голосов
/ 05 июня 2018

Спасибо @Nicolas R .Я изменил эту функцию handleIncomingActivity () следующим образом и отправил значение activity.text в компонент реагирования моего чат-бота как отправку данных из дочернего (Chat.js) в родительский (компонент Мой реагирование) с помощью обратных вызовов.Здесь giveTextForBot () - это функция обратного вызова, которая предназначена для реагирования компонента chatbot как пропеллера.

Chat.prototype.handleIncomingActivity = function (activity) {
        var state = this.store.getState();
        switch (activity.type) {
            case "message":
                this.store.dispatch({ type: activity.from.id === state.connection.user.id ? 'Receive_Sent_Message' :'Receive_Message' , activity: activity });
                if(activity.from.id === "<appName>"){
                    this.props.giveTextForBot(activity.text);
                   }             
            break;
            case "typing":
                if (activity.from.id !== state.connection.user.id)
                    this.store.dispatch({ type: 'Show_Typing', activity:activity });
                break;
        }
};
0 голосов
/ 04 июня 2018

Вы можете быстро найти то, что ищете, выполнив поиск в репозитории Webchat на Github .

Если вы выполните поиск incoming, вы перейдете к этим строкам которая может быть интересна для ваших нужд:

private handleIncomingActivity(activity: Activity) {
    let state = this.store.getState();
    switch (activity.type) {
        case "message":
            this.store.dispatch<ChatActions>({ type: activity.from.id === state.connection.user.id ? 'Receive_Sent_Message' : 'Receive_Message', activity });
            break;

        case "typing":
            if (activity.from.id !== state.connection.user.id)
                this.store.dispatch<ChatActions>({ type: 'Show_Typing', activity });
            break;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...