// command for starting request with a simple anti-spam shiet
bot.command('movie', (ctx) => {
let stopSpam = findUserData(ctx);
if (stopSpam) {
ctx.reply(spammerMsg)
} else {
userData.push({id: ctx.message.from.id, msgId: ctx.message.message_id});
ctx.reply('Género',genreMenu);
}
});
// So the issue is right here.
//Right now I'm checking if the user has already used the comand 'movie'.
//If so, he could use its buttons. But he could use the buttons from another user too...
bot.action(/.+/,(ctx) => {
let allowed = findUserCallbackData(ctx);
if (allowed) {
ctx.editMessageReplyMarkup((m) => m.inlineKeyboard([]));
allowed.queryGenre = ctx.update.callback_query.data;
ctx.reply('Época', timeMenu)
.then(() => {
ctx.deleteMessage(ctx.update.callback_query.message.message_id)
})
.catch(e => {
console.log(e)
})
} else {
console.log('noppe')
}
});
findUserData = (ctx) => {
let findCmdUser = userData.find(user => user.id === ctx.message.from.id)
return findCmdUser
}
findUserCallbackData = (ctx) => {
let findUser = userData.find(user => user.id === ctx.update.callback_query.from.id)
return findUser
}
我在电影院电报小组中,并且正在使用嵌入式键盘作为数据提供者,制作用于电影推荐的机器人。
问题是嵌入式键盘不仅可见,而且对于每个组成员都是互动的。
所以我的问题是,我可以防止这种情况发生吗?我能否使插入键盘的用户只能使用嵌入式键盘(如果可能的话,该键盘是可见的)?
对不起,我的基本英语水平,谢谢您的时间。
答案 0 :(得分:1)
嵌入式键盘直接附加到消息上,因此无法使其仅对某些参与者可见。