我正在通过botkit构建一个bot,它正在使用Zendesk api来提取信息。
我有一个功能,要求用户提供搜索词,并且机器人会搜索有关该搜索词的相关信息。它从Zendesk API中提取信息并输出答案。
我的问题是当用户键入搜索词“Jim”时,它将正常工作并从 ticket [0] 元素中提取信息。
但是,当用户键入“Steve”之类的其他单词时,它将无效。据我所知,目前该功能在找不到任何内容时没有设置返回。
这是我的原始代码:
controller.hears(['SEARCH TICKET',/search ticket/gi, /^.{0,}jirabot.{0,}$/],
['direct_message','direct_mention','mention','ambient'],function(bot,message) {
// start a conversation to handle this response.
bot.startConversation(message,function(err,convo) {
convo.ask('What are you looking for?',function(response,convo) {
zendesk.search.list('query='+response.text+'&sort_by=priority&sort_order=desc').then(function(tickets){
console.log(tickets);
bot.reply(message, 'The Ticket ID Number: ' + tickets[0].id + '\n The Ticket Priority: ' + tickets[0].priority + '\n The Ticket Subject: ' + tickets[0].subject + '\n The Ticket Description: \n'+ tickets[0].description + '\n');
convo.next();
});
});
});
});
我正在考虑尝试这样的问题:
try{
zendesk.search.list('query='+response.text+'&sort_by=priority
&sort_order=desc').
then(function(tickets){
console.log(tickets);
bot.reply(message, 'The Ticket ID Number: ' + tickets[0].id + '\n The Ticket Priority: ' + tickets[0].priority + '\n The Ticket Subject: ' + tickets[0].subject + '\n The Ticket Description: \n'+ tickets[0].description + '\n');
convo.next();
});
});
});
}catch (err)
console.log('Nothing Found');
bot.reply(message, 'I could not find anything.');
});
但是,它不会输出该响应。
以下是botkit文档的链接: https://github.com/howdyai/botkit
以下是zendesk API文档的链接: https://developer.zendesk.com/rest_api/docs/core/tickets#list-tickets