¿Cómo limitar el acceso para que los botones en línea no se muestren para todos los usuarios de un grupo? Si no es posible, ¿cuál es la mejor alternativa para permitir que los administradores hagan clic en lo que envía un comando en el chat mientras el propio administrador responde o publica?
¿Solo el usuario que actualmente presiona los botones o todos los administradores?
¿Cómo evito que los no administradores vean el menú? o limitarlo solo al usuario actual que interactúa con él?
Aquí está mi código:
const main = (ctx) => { if( ctx.from._is_in_admin_list ){ return ctx.reply('Select your audio list', Keyboard.reply(['Controls'], { columns: 1 })) } else { } } bot.use(function(ctx, next){ if( ctx.chat.id > 0 ) return next(); return bot.telegram.getChatAdministrators(ctx.chat.id) .then(function(data){ if( !data || !data.length ) return; console.log('admin list:', data); ctx.chat._admins = data; ctx.from._is_in_admin_list = data.some( adm => adm.user.id === ctx.from.id ); }) .catch(console.log) .then(_ => next(ctx)); }); bot.start(main) bot.hears('Back', main) bot.hears('Controls', (ctx) => { if( ctx.from._is_in_admin_list ){ const keyboard = Keyboard.make(["/stop","/pause","/resume","/skip"], { columns: 2 }) return ctx.reply('Controls menu selected', Keyboard.combine(keyboard, backKeyboard).reply()) } else { //do nothing } }) bot.launch()