如何解决如何修复错误 400 nodejs 电报 bot api?
当我点击按钮4并显示数据并再次按4时,会弹出错误:未处理的拒绝错误:ETELEGRAM:400错误请求:消息未修改:指定的新消息内容和回复标记正是与消息的当前内容和回复标记相同。
const bot = new TelegramBot(process.env.REACT_TELEGTAM_TOKEN,{polling: true});
bot.on('message',msg => {
const chatId=helper.getChadId(msg)
switch(msg.text)
{
case kb.home.b_document:
bot.sendMessage(chatId,`Виберіть документ`,{
reply_markup:{keyboard:keyboard.document
}
})
}
});
//===================================================================================================
bot.onText(/\/start/,msg => {
const hello_text = `Вітаємо,${msg.from.first_name}\nВиберіть команду для початку роботи:`
bot.sendMessage(helper.getChadId(msg),hello_text)
})
//=============================================================================================================
bot.onText(/\/book/,function(msg) {
request(`http://localhost:3000/api/document?page=0&size=10&type_document=12`,(error,response,body) =>{
if(error) throw new Error(error)
if(response.statusCode===200){
const datas=JSON.parse(body)
console.log('date: '+timeConverter(msg.date) +' username: '+msg.from.username + ' userid:' +msg.from.id + ' firstname: ' + msg.chat.first_name + ' language_code: '+msg.from.language_code + ' isbot:'+msg.from.is_bot + ' send message')
const html_text=datas.items.map((f,i) =>{
return f.files ? `<b>+</b> Номер документа: <strong><b>${f.num_document}</b></strong> Дата документа: ${f.date_document} Назва: ${f.name_document}<a href="www.localhost:3000/${f.files}"><b> ФАЙЛ</b></a>` : `<b>+</b> Номер документа: <strong><b>${f.num_document}</b></strong> Дата документа: ${f.date_document} Назва: ${f.name_document}`
}).join('\n')
bot.sendMessage(msg.chat.id,html_text+ '\n <b>Сторінка: 1</b>',getPagination(1,datas.totalpages));
}
})
});
bot.on('callback_query',function (message) {
var msg = message.message;
var pages=message.data;
request(`http://localhost:3000/api/document?page=${pages-1}&size=10&type_document=12`,body) =>{
if(error) throw new Error(error)
if(response.statusCode===200){
const datas=JSON.parse(body)
const html_text=datas.items.map((f,i) =>{
return f.files ? `<b>+</b> Номер документа: <strong><b>${f.num_document}</b></strong> Дата документа: ${f.date_document} Назва: ${f.name_document}<a href="www.localhost:3000/${f.files}"><b> ФАЙЛ</b></a>` : `<b>+</b> Номер документа: <strong><b>${f.num_document}</b></strong> Дата документа: ${f.date_document} Назва: ${f.name_document}`
}).join('\n')
var editOptions = Object.assign({},getPagination(parseInt(message.data),datas.totalpages),{ chat_id: msg.chat.id,message_id: msg.message_id});
bot.editMessageText(html_text+'\n <b>Сторінка: </b>' + message.data,editOptions);
}
})
});
function getPagination( current,maxpage ) {
var keys = [];
if (current>1) keys.push({ text: `«1`,callback_data: '1' });
if (current>2) keys.push({ text: `‹${current-1}`,callback_data: (current-1).toString() });
keys.push({ text: `-${current}-`,callback_data: current.toString() });
if (current<maxpage-1) keys.push({ text: `${current+1}›`,callback_data: (current+1).toString() })
if (current<maxpage) keys.push({ text: `${maxpage}»`,callback_data: maxpage.toString() });
return {
reply_markup: JSON.stringify({
inline_keyboard: [ keys ],}),parse_mode: 'HTML'
};
}
function timeConverter(UNIX_timestamp){
var a = new Date(UNIX_timestamp * 1000);
var months = ['Січ.','Лют.','Берез.','Квіт.','Трав.','Черв.','Лип.','Серп.','Верес.','Жовт.','Листоп.','Груд.'];
var year = a.getFullYear();
var month = months[a.getMonth()];
var date = a.getDate();
var hour = a.getHours();
var min = a.getMinutes();
var sec = a.getSeconds();
var time = date + ' ' + month + ' ' + year + ' ' + hour + ':' + min + ':' + sec ;
return time;
}
谢谢
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。