JavaRush /Blog Java /Random-ES /Telegram Ability Bot: un bot que puede mantener un diálog...
Chundrik
Nivel 35
Санкт-Петербург

Telegram Ability Bot: un bot que puede mantener un diálogo

Publicado en el grupo Random-ES
Los bots no sólo son interesantes, sino también útiles. Mientras trabaja en ellos, podrá obtener un proyecto simple pero funcional para automatizar cualquier función y, en el camino, familiarizarse con lambdas, Git y Heroku. Cuando creé el bot, no encontré instrucciones sobre cómo hacer algo incluso un poco más complejo que un simple echo bot. Quería algo más razonable: por ejemplo, un canal que pudiera mantener un diálogo real, cuyo desarrollo cambiaría según la respuesta elegida. Hablaré de mi proyecto, que me llevó dos semanas, y prestaré especial atención al despliegue en Heroku, ya que encontré grandes dificultades en la etapa final. Telegram Ability Bot: un bot que puede mantener un diálogo - 1

Registro

Para comenzar, debe registrar el bot y recibir un nombre y un token, que necesitaremos más adelante. Afortunadamente, esto no es difícil: simplemente abre Telegram, busca @BotFather e ingresa /start. En respuesta, recibirá una lista de comandos: necesitamos /newbot. Se nos ocurre un nombre y luego un nombre de usuario, que debería terminar en -bot, por ejemplo, Consequences1Bot. El nombre de usuario debe ser original, por lo que aquí tendrás que usar tu imaginación. En respuesta, BotFather enviará un token, que es mejor guardar inmediatamente.

Comenzar

Telegram Ability Bot: un bot que puede mantener un diálogo - 2Para empezar, necesitaremos un proyecto Maven, Java 8 e Intelliji Idea Ultimate. Insertar pom.xml: Telegram Ability Bot: un bot que puede mantener un diálogo - 3no olvide hacer clic en el botón Cargar cambios de Maven, que aparecerá en la esquina superior derecha. También asegúrese de estar utilizando Java 8 o superior, esto se puede encontrar en Archivo --> Configuración del proyecto --> Proyecto. En la carpeta src.main.java, crea una subcarpeta con el nombre de tu bot, para mí es un paquete example.TelegramBot. Primero creamos una clase TelegramBotque hereda AbilityBot. Si Idea lo subraya en rojo (y lo hace), haga clic en Importar clase. AbilityBot tiene un método que debe implementarse: creatorId().
@Override
    public int creatorId() {
        return Constants.CREATOR_ID;
    }
También necesitamos crear dos constructores: uno sin argumentos y usando el segundo llamamos al constructor de superclase:
public TelegramBot() {
        this(Constants.BOT_TOKEN, Constants.BOT_USERNAME);
    }
    private TelegramBot(String botToken, String botUsername) {
        super(botToken, botUsername);
    }
Constansnaturalmente se vuelve rojo: es necesario crear esta interfaz. Almacenará las cadenas y el número de identificación. Por supuesto, no tienes que molestarte y dejar todo en el documento principal, pero así quedará mucho más claro. Entonces, creemos una interfaz Constans. Las primeras variables serán String BOT_TOKEN(el token que envió BotFather) String BOT_USERNAMEy int CREATOR_ID. El ID del creador es necesario para mayor seguridad; podrás encontrarlo un poco más adelante.

Lanzamiento

Crea una clase Applicationque contendrá un método main()con el código necesario para inicializar el bot.Telegram Ability Bot: un bot que puede mantener un diálogo - 4
public class Application {

    public static void main(String[] args) {
        // Initializes dependencies necessary for the base bot
        ApiContextInitializer.init();

        // Create the TelegramBotsApi object to register your bots
        TelegramBotsApi botsApi = new TelegramBotsApi();

        try {
            // Register your newly created AbilityBot
            FitnessBot bot = new FitnessBot();
            botsApi.registerBot(bot);

        } catch (TelegramApiException e) {
            e.printStackTrace();
        }
    }
}
Ahora puedes iniciar el bot desde el método principal, pero no realizará ninguna acción. Sólo el silencio será tu respuesta. En la siguiente parte describiré cómo cambiar esto. PARTE 2
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION