我的对话有问题。我在对话中编写了以下代码:
if (ctx.session.in_conversation == true) return;
conversation.session.in_conversation = true;
await ctx.replyWithChatAction("typing");
await ctx.reply("Mahsulot nomini kiriting:", {
reply_markup: cancelKeyboard,
});
const nameMsg = await conversation.waitFor(["message"], {
otherwise: () => ctx.reply("Iltimos matn ko'rinishida kiriting!"),
});
const name = nameMsg.message?.text;
if (name == "❌ Bekor qilish") {
conversation.session.in_conversation = false;
await ctx.reply("🙅♂️ Amal bekor qilindi", { reply_markup: mainKeyboard });
return;
}
await ctx.reply("Mahsulot haqida ma'lumot:");
const descryptionMsg = await conversation.waitFor(["message"]);
let descryption = descryptionMsg.message.text;
await ctx.reply(`${descryption}`);
conversation.session.in_conversation = false;
return;
对话自行停止,不返回任何错误。
await ctx.reply("Mahsulot haqida ma'lumot:");
短信已发送,对话卡住。我哪里做错了?
一切都在工作,直到第二次回复。但此后什么都不起作用。回复、对话日志……什么都没有。我通过完全删除对话或从0重建项目来解决之前的问题。
发生这种情况是因为您正在使用多会话,它需要额外的对话初始值,这里的文档https://grammy.dev/plugins/conversations#installation-with-multi-sessions
bot.use(session({
type: 'multi',
isRegistred: {
initial: () => false
},
isAdmin: {
initial: () => false
},
conversation: {}
}))