创建聊天机器人时交替显示消息
Alternating messages on chatbot creation
我正在使用 github(https://github.com/Androz2091/insta.js.git) 上可用的库为 Instagram 使用 Node JS 做一个聊天机器人。我目前正在通过在线 replit 平台测试该功能,我正在从 Instagram 用户那里获取消息并通过 url 将其发送到回复服务
我遇到了机器人的问题。它必须遵循一个消息结构,但是,这个结构经常被切换。
我在聊天中发送:
-嗨
机器人在控制台响应:
-您好!
-有什么可以帮到您的吗?
但是在聊天中他是这样回复的:
-有什么可以帮到您的吗?
-您好!
下面是我用来遍历接收和发送消息的数组的代码
我试过用switch case来解决问题,还是一样。
node-fetch(`instagram?mensage=${message}&user=${message.author.fullName}&session=${client.user}`)
.then(res => res.json())
.then(json => {
for (var i = 0; i < json.length; i++) {
message.chat.sendMessage(json[i].text || json[i].title);
console.log(json[i].text || json[i].title)
for (var key in json[i]) {
/* switch case
switch(json[i][key]){
case json[i].text:
message.chat.sendMessage(json[i].text);
break;
case json[i].title:
message.chat.sendMessage(json[i].title);
break;
}*/
if (json[i][key].length == 3) {
for (var j = 0; j < json[i][key].length; j++) {
message.chat.sendMessage(json[i][key][j].label);
console.log(json[i][key][j].label);
}
}
有谁知道为什么会这样?
我已经谢谢你了。
sendMessage returns 承诺,但您将其用作普通功能。
您可以在此处阅读 javascript 承诺 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Using_promises。
在您的代码中,它应该看起来像这样
...
.then(async json => {
for (var i = 0; i < json.length; i++) {
await message.chat.sendMessage(json[i].text || json[i].title);
...
}
});
我正在使用 github(https://github.com/Androz2091/insta.js.git) 上可用的库为 Instagram 使用 Node JS 做一个聊天机器人。我目前正在通过在线 replit 平台测试该功能,我正在从 Instagram 用户那里获取消息并通过 url 将其发送到回复服务
我遇到了机器人的问题。它必须遵循一个消息结构,但是,这个结构经常被切换。
我在聊天中发送:
-嗨
机器人在控制台响应:
-您好!
-有什么可以帮到您的吗?
但是在聊天中他是这样回复的:
-有什么可以帮到您的吗?
-您好!
下面是我用来遍历接收和发送消息的数组的代码
我试过用switch case来解决问题,还是一样。
node-fetch(`instagram?mensage=${message}&user=${message.author.fullName}&session=${client.user}`)
.then(res => res.json())
.then(json => {
for (var i = 0; i < json.length; i++) {
message.chat.sendMessage(json[i].text || json[i].title);
console.log(json[i].text || json[i].title)
for (var key in json[i]) {
/* switch case
switch(json[i][key]){
case json[i].text:
message.chat.sendMessage(json[i].text);
break;
case json[i].title:
message.chat.sendMessage(json[i].title);
break;
}*/
if (json[i][key].length == 3) {
for (var j = 0; j < json[i][key].length; j++) {
message.chat.sendMessage(json[i][key][j].label);
console.log(json[i][key][j].label);
}
}
有谁知道为什么会这样? 我已经谢谢你了。
sendMessage returns 承诺,但您将其用作普通功能。
您可以在此处阅读 javascript 承诺 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Using_promises。
在您的代码中,它应该看起来像这样
...
.then(async json => {
for (var i = 0; i < json.length; i++) {
await message.chat.sendMessage(json[i].text || json[i].title);
...
}
});