Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

176
Visualizações
Telegraf: después de restringir los permisos, mi bot no devolverá las habilidades de publicación

Estoy luchando por entender dónde me he equivocado aquí, así que estoy buscando algunos ojos adicionales. Estoy usando Telegraf para hacer un bot de Telegram en NodeJS. Cuando un nuevo usuario inicia sesión, debería restringir que pueda publicar cualquier cosa hasta que responda una pregunta simple de estilo Captcha. Suponiendo que respondan correctamente, se les debe otorgar la capacidad de publicar nuevamente. Si responde incorrectamente, es expulsado del grupo.

Todo parece encajar, excepto la parte en la que se le devuelve al usuario la capacidad de publicar después de responder correctamente. Tengo entendido que restrictChatMember se puede pasar como "verdadero" para los permisos que desea permitir, pero no funciona. ¿Qué más me estoy perdiendo?

 bot.on('new_chat_members', (ctx) => { newMember = ctx.message.new_chat_members[0].id; newMemberName = ctx.message.new_chat_members[0].first_name; bot.telegram.restrictChatMember(ctx.chat.id, newMember); const keyboard = Keyboard.make([ Key.callback('Answer1', 'Fail'), Key.callback('Answer2', 'Fail'), Key.callback('Answer3', 'Pass'), Key.callback('Answer4', 'Fail'), Key.callback('Answer5', 'Fail'), ]).inline(); bot.telegram.sendMessage(ctx.chat.id, `Hello, ${newMemberName}!\nYou can post once You select Answer3`, keyboard).then( ({ message_id }) => { spamBlocker = message_id; }); }); bot.on("callback_query", function(callbackQuery) { let chatID = callbackQuery.update.callback_query.message.chat.id; if (callbackQuery.update.callback_query.data == "Pass") { bot.telegram.deleteMessage(chatID, spamBlocker); bot.telegram.restrictChatMember(chatID, newMember, [true, true, true, true]); bot.telegram.sendMessage(chatID, `${newMemberName}, ${welcomeMessage}`) } else { bot.telegram.kickChatMember(chatID, newMember); bot.telegram.deleteMessage(chatID, spamBlocker); } });

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Gracias a la ayuda de un amable extraño en CodingHelp Discord, pude llegar a la siguiente solución. El problema es que restrictChatMember toma una ID de chat, una ID de miembro y un objeto. El objeto toma pares de claves (obvio a posteriori), así que le dices "can_send_messages": verdadero, por ejemplo, y continúa con cada línea.

En mi caso, cambie esta línea:

 bot.telegram.restrictChatMember(chatID, newMember, [true, true, true, true]);

a esto:

 bot.telegram.restrictChatMember(chatID, newMember, {"can_send_messages": true, "can_send_media_messages": true, "can_send_other_messages": true, "can_add_web_page_previews": true});
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda