如何在使用API​​时处理错误

时间:2017-04-09 19:28:04

标签: javascript json node.js

我正在通过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

0 个答案:

没有答案