gpt4 book ai didi

javascript - botConnection.activity$ node.js 机器人

转载 作者:行者123 更新时间:2023-11-29 20:53:11 26 4
gpt4 key购买 nike

我已经使用反向 channel 部署了一个用 nodejs 编写的机器人。在我的 BOT 中,我正在创建如下事件

在 bot.dialog 中创建事件:

    var ev = createEvent('sendUserInfo', "test", session.message.address);
session.endDialog(ev)

事件函数

const createEvent = (eventName, value, address) => {
var msg = new builder.Message().address(address);
msg.data.type = 'event';
msg.data.name = eventName;
msg.data.value = value;
return msg;}

在网络聊天 javascript 中,我尝试订阅此事件,但未收到任何响应。

  botConnection.activity$
.filter(activity => activity.type === "event")
.subscribe(activity => console.log(activity));

如果我直接从网络聊天创建 postActivity,相同的订阅工作正常。

   botConnection
.postActivity({ type: "event", name: "sendUserInfo", value: "test", from: user })
.subscribe(id => console.log("success", id));

有什么建议吗,为什么我无法在网络聊天中捕捉到 BOT 创建的事件?

其他方法工作正常,如果我从网络聊天创建事件并在 BOT 中订阅事件,它会按预期工作。

bot.on("event", function (event) {
var msg = new builder.Message().address(event.address);
msg.data.textLocale = "en-us";
bot.send(msg);
})

最佳答案

我不是很清楚你的代码和场景。但是我在对话框中将一个事件发送到网络聊天,它在 activity$.filer... 中成功捕获。

在机器人中:

bot.dialog('/', function (session) {
session.send('You said ' + session.message.text);
var msg = new builder.Message(session);
msg.data.type = 'event';
msg.data.name = 'updateUrl';
msg.data.value = 'hello world';
session.send(msg);
});

在网络聊天中:

botConnection.activity$
.filter(activity => {console.log('filter');console.log(activity);return activity.type === "event"})
.subscribe((activity) => {console.log(activity)});

enter image description here

关于javascript - botConnection.activity$ node.js 机器人,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50731515/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com