Botkit Slack Bot не слушает новые js-файлы (размещено на Azure)
Мы разместили бота BotKit на Azure, следуя его инструкциям и клонируя в репо отсюда: https://github.com/howdyai/botkit-starter-slack
Затем я попытался добавить новый файл JS в папку с навыками, которая выглядит следующим образом:
var Botkit = require('botkit');
var controller = Botkit.slackbot({});
controller.hears(['help'], 'direct_message,direct_mention,mention', (bot, message) => {
bot.reply(message, {
text: `You can ask me things like:
"Today's agenda"
"Create event"`
});
});
controller.hears(['create event', 'new event'], 'direct_message,direct_mention,mention', (bot, message) => {
let subject,
start,
duration,
description,
location,
invitees,
whatid,
whoid;
let askSubject = (response, convo) => {
convo.ask("What is the subject of the event?", (response, convo) => {
subject = response.text;
askStart(response, convo);
convo.next();
});
}
let askStart = (response, convo) => {
convo.ask("When would you like this event to start?", (response, convo) => {
start = response.text;
askDuration(response, convo);
convo.next();
});
}
let askDuration = (response, convo) => {
convo.ask("How long will this event be?", (response, convo) => {
duration = response.text;
askDescription(response, convo);
convo.next();
});
}
let askDescription = (response, convo) => {
convo.ask("Enter a description if you'd like.", (response, convo) => {
description = response.text;
askLocation(response, convo);
convo.next();
});
}
let askLocation = (response, convo) => {
convo.ask("Enter a locatoin if you'd like.", (response, convo) => {
location = response.text;
askInvitees(response, convo);
convo.next();
});
}
let askInvitees = (response, convo) => {
convo.ask("Enter a comma seperated list of invitees if you'd like.", (response, convo) => {
invitees = response.text;
askWhatId(response, convo);
convo.next();
});
}
let askWhatId = (response, convo) => {
convo.ask("Add anything to the Related To field?", (response, convo) => {
whatid = response.text;
askWhoId(response, convo);
convo.next();
});
}
let askWhoId = (response, convo) => {
convo.ask("Add anyone to the Name field?", (response, convo) => {
whoid = response.text;
/*salesforce.createContact({firstName: firstName, lastName: lastName, title: title, phone: phone})
.then(contact => {
bot.reply(message, {
text: "I created the contact:",
attachments: formatter.formatContact(contact)
});
convo.next();
})
.catch(error => {
bot.reply(message, error);
convo.next();
});*/
});
}
bot.reply(message, "OK, I can help you with that!");
bot.startConversation(message, askSubject);
});
Бот корректно связывается с нашим слабым каналом, и мы можем набирать основные, уже включенные команды и получать ответ. Однако, когда я набираю "новое событие", чтобы попытаться получить доступ к только что созданному новому сценарию, ничего не происходит.
Я не нахожу очень хорошей документации о том, как добавлять новые сценарии навыков при локальном размещении бота Botkit на Azure, чтобы слабый бот их подбирал... Я даже пытался обернуть все вышеперечисленное (за исключением строки var Botkit и var controller) в module.exports = function(controller) и до сих пор не получил ответа.
Кто-нибудь может предложить несколько советов о том, как я могу сделать собственный разговор в новом js-файле в папке с навыками и заставить мой уже подключенный слабый бот действительно его слушать?
1 ответ
Ваш модуль навыков должен фактически получить контроллер из основного файла bot.js в качестве параметра - он должен выглядеть так
module.exports = function(controller) {
// your skill code here
}