【发布时间】:2016-12-18 20:21:35
【问题描述】:
我正在节点中构建一个信使机器人。我希望它收集用户输入数据并进行对话或提问,但我的代码不起作用。不起作用的部分是如果我键入相同的代码,它只会继续到下一个 else if 块。其次,数组没有在第一个 if 语句之后捕获文本。有更好的方法吗?有人可以提供代码吗?
我的代码如下。我想要的就是这个 iimage:
var currentbot = 0;
var awnswers = [];
app.post('/webhook', function(req, res) {
var events = req.body.entry[0].messaging;
for (i = 0; i < events.length; i++) {
var event = events[i];
if (event.message && event.message.text) {
var text = event.message.text;
if (text == "hi") {
start(event.message.text, event.sender.id);
}
}
}
res.sendStatus(200);
});
var awnswers = [];
function start(text, id) {
if (count == 0) {
sendTextMessage('hello lets order!', id);
arr.push(text);
console.log(awnswers);
count = 1;
} else if (count == 1) {
sendTextMessage('what size do you want?', id);
arr.push(text);
console.log(awnswers);
count = 2;
} else if (count == 2) {
sendTextMessage('its on its way!', id);
arr.push(text);
console.log(awnswers);
count = 0;
}
}
function sendTextMessage(messageText, recipientId) {
var messageData = {
recipient: {
id: recipientId
},
message: {
text: messageText
}
};
callSendAPI(messageData);
}
function callSendAPI(messageData) {
request({
uri: 'https://graph.facebook.com/v2.6/me/messages',
qs: {
access_token: process.env.access_token
},
method: 'POST',
json: messageData
}, function(error, response, body) {
if (!error && response.statusCode == 200) {
var recipientId = body.recipient_id;
var messageId = body.message_id;
console.log("Successfully sent generic message with id %s to recipient %s", messageId, recipientId);
} else {
console.error("Unable to send message.");
console.error(response);
console.error(error);
}
});
}
【问题讨论】:
-
"我拥有的代码不起作用" -- 究竟是什么"不起作用"?是否有错误消息(和行号)? StackOverflow 不是代码编写或调试服务。请提供一个更简洁的问题。
-
@LambdaNinja 不起作用的部分是如果我键入相同的代码,它只会继续到下一个 else if 块。第二个数组没有捕获第一个 if 语句之后的文本。
标签: chat artificial-intelligence bots facebook-messenger messenger