Возникла проблемка, бот отвечает на команду /start в чате админки и даже там создал клавиатуру. Как сделать чтобы он отвечал на сообщения в самом чате с ботом, а не везде где добавлен. Просто нигде не могу найти перегрузки метода ctx.reply, мб там есть отправка по ctx.from.id? Прошу помочь с данной задачей. Вот код !Также хочу добавить что метод bot.telegram.SendMessage не подходит, так как он не создает клавиатуру! var UserIdForTeam var UserNameForTeam //Функции// //Создание данных о новом пользователе function AddUser(UserId){ const UserInfo = { id: UserId.toString(), balance: 0, count_profits: 0, summa_profits: 0, number_qiwi: 'Пусто', } const UserInfoJSON = JSON.stringify(UserInfo) fs.mkdirSync(path.join(__dirname, 'users', UserId.toString()), (error) => { if(error){ throw error } }) fs.writeFileSync(path.join(__dirname, 'users', UserId.toString(), 'UserInfo.json'), UserInfoJSON, err => { if(err){ throw err } }) fs.mkdirSync(path.join(__dirname, 'users', UserId.toString(), 'Url'), (err) => { if(err){ throw err } }) } function MyProfile(UserInfo) { return `Мой профиль\nМой ID: ${UserInfo.id}\nКоличество профитов: ${UserInfo.count_profits}\nСумма профитов: ${UserInfo.summa_profits}\nБаланс: ${UserInfo.balance}\nНомер ****: ${UserInfo.number_qiwi} ` } function GetUserInfo(UserId){ const PathFileInfo = path.join(__dirname, 'users', UserId.toString(), 'UserInfo.json') return JSON.parse(fs.readFileSync(PathFileInfo)) } function DefaultKeyboard(){ return ['Мой профиль', 'Создание ссылки'] } bot.command('start', (ctx) => { var UserId = ctx.from.id if(fs.existsSync(path.join(__dirname, 'users', UserId.toString()))){ const UserInfo = GetUserInfo(UserId) bot.telegram.sendMessage(ctx.from.id, MyProfile(UserInfo),{ reply_markup: Markup.keyboard([ DefaultKeyboard(), ['Изменить номер ****'] ]).resize() }) } else{ UserIdForTeam = ctx.from.id UserNameForTeam = ctx.from.username ctx.reply(`Добро пожаловать в проект, ${ctx.from.first_name}, подавай заявку и жди принятия!\nАдминистрация: @ || @`, { reply_markup: Markup.keyboard(['Подать заявку']).resize() }) console.log(UserIdForTeam) } }) bot.on('message', (ctx) => { //Подать заявку if(ctx.message.text === 'Подать заявку'){ ctx.reply('Заявка на вступление отправлена, ожидай', { reply_markup: Markup.removeKeyboard() }) bot.telegram.sendMessage(admin_chat_id, `Бедолага @${UserNameForTeam} подал заявку на вступление`, { reply_markup: Markup.inlineKeyboard([ [Markup.callbackButton('Принять в тиму', 'TrueTeam'), Markup.callbackButton('Отказать бедолаге', 'FalseTeam') ] ]) }) } //Мой профиль if(ctx.message.text === 'Мой профиль'){ var UserId = ctx.from.id if(fs.existsSync(path.join(__dirname, 'users', UserId.toString()))){ const UserInfo = GetUserInfo(UserId) ctx.reply(MyProfile(UserInfo), { reply_markup: Markup.keyboard([ DefaultKeyboard(), ['Изменить номер ****'] ]).resize() }) } } if(ctx.message.text === 'Создание ссылки'){ } }) bot.action('TrueTeam', (ctx) => { console.log(UserIdForTeam) if(UserIdForTeam){ if(fs.existsSync(path.join(__dirname, 'users', UserIdForTeam.toString()))){ bot.telegram.sendMessage(admin_chat_id, `Бедолага @${UserNameForTeam} уже есть в тиме`) if(ctx){ ctx.deleteMessage() } } else{ bot.telegram.sendMessage(admin_chat_id, `Бедолага @${UserNameForTeam} был принят`) AddUser(UserIdForTeam) bot.telegram.sendMessage(UserIdForTeam, 'Бедолага, тебя приняли! Тыкай /start') if(ctx){ ctx.deleteMessage() } } } }) bot.action('FalseTeam', (ctx) => { if(UserIdForTeam){ bot.telegram.sendMessage(UserIdForTeam, 'Сорян бедолага, ты нам не подходишь:(') bot.telegram.sendMessage(admin_chat_id, `Бедолага @${UserNameForTeam} слит`) if(ctx){ ctx.deleteMessage() } } }) bot.launch() JavaScript var UserIdForTeam var UserNameForTeam //Функции// //Создание данных о новом пользователе function AddUser(UserId){ const UserInfo = { id: UserId.toString(), balance: 0, count_profits: 0, summa_profits: 0, number_qiwi: 'Пусто', } const UserInfoJSON = JSON.stringify(UserInfo) fs.mkdirSync(path.join(__dirname, 'users', UserId.toString()), (error) => { if(error){ throw error } }) fs.writeFileSync(path.join(__dirname, 'users', UserId.toString(), 'UserInfo.json'), UserInfoJSON, err => { if(err){ throw err } }) fs.mkdirSync(path.join(__dirname, 'users', UserId.toString(), 'Url'), (err) => { if(err){ throw err } }) } function MyProfile(UserInfo) { return `Мой профиль\nМой ID: ${UserInfo.id}\nКоличество профитов: ${UserInfo.count_profits}\nСумма профитов: ${UserInfo.summa_profits}\nБаланс: ${UserInfo.balance}\nНомер ****: ${UserInfo.number_qiwi} ` } function GetUserInfo(UserId){ const PathFileInfo = path.join(__dirname, 'users', UserId.toString(), 'UserInfo.json') return JSON.parse(fs.readFileSync(PathFileInfo)) } function DefaultKeyboard(){ return ['Мой профиль', 'Создание ссылки'] } bot.command('start', (ctx) => { var UserId = ctx.from.id if(fs.existsSync(path.join(__dirname, 'users', UserId.toString()))){ const UserInfo = GetUserInfo(UserId) bot.telegram.sendMessage(ctx.from.id, MyProfile(UserInfo),{ reply_markup: Markup.keyboard([ DefaultKeyboard(), ['Изменить номер ****'] ]).resize() }) } else{ UserIdForTeam = ctx.from.id UserNameForTeam = ctx.from.username ctx.reply(`Добро пожаловать в проект, ${ctx.from.first_name}, подавай заявку и жди принятия!\nАдминистрация: @ || @`, { reply_markup: Markup.keyboard(['Подать заявку']).resize() }) console.log(UserIdForTeam) } }) bot.on('message', (ctx) => { //Подать заявку if(ctx.message.text === 'Подать заявку'){ ctx.reply('Заявка на вступление отправлена, ожидай', { reply_markup: Markup.removeKeyboard() }) bot.telegram.sendMessage(admin_chat_id, `Бедолага @${UserNameForTeam} подал заявку на вступление`, { reply_markup: Markup.inlineKeyboard([ [Markup.callbackButton('Принять в тиму', 'TrueTeam'), Markup.callbackButton('Отказать бедолаге', 'FalseTeam') ] ]) }) } //Мой профиль if(ctx.message.text === 'Мой профиль'){ var UserId = ctx.from.id if(fs.existsSync(path.join(__dirname, 'users', UserId.toString()))){ const UserInfo = GetUserInfo(UserId) ctx.reply(MyProfile(UserInfo), { reply_markup: Markup.keyboard([ DefaultKeyboard(), ['Изменить номер ****'] ]).resize() }) } } if(ctx.message.text === 'Создание ссылки'){ } }) bot.action('TrueTeam', (ctx) => { console.log(UserIdForTeam) if(UserIdForTeam){ if(fs.existsSync(path.join(__dirname, 'users', UserIdForTeam.toString()))){ bot.telegram.sendMessage(admin_chat_id, `Бедолага @${UserNameForTeam} уже есть в тиме`) if(ctx){ ctx.deleteMessage() } } else{ bot.telegram.sendMessage(admin_chat_id, `Бедолага @${UserNameForTeam} был принят`) AddUser(UserIdForTeam) bot.telegram.sendMessage(UserIdForTeam, 'Бедолага, тебя приняли! Тыкай /start') if(ctx){ ctx.deleteMessage() } } } }) bot.action('FalseTeam', (ctx) => { if(UserIdForTeam){ bot.telegram.sendMessage(UserIdForTeam, 'Сорян бедолага, ты нам не подходишь:(') bot.telegram.sendMessage(admin_chat_id, `Бедолага @${UserNameForTeam} слит`) if(ctx){ ctx.deleteMessage() } } }) bot.launch()
Я думаю, лучше переделать то что происходит начиная с 44 строки. Тут бот добавляет команду старт, попробуй просто проверить если сообщение == /start то уже действия надобные
MarkusKawakami, метод bot.telegram.SendMessage в итоге нормально работать начал, он приколы какие-то ловил, теперь клавиатуру отображает