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.
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
Para empezar, necesitaremos un proyecto Maven, Java 8 e Intelliji Idea Ultimate. Insertarpom.xml
: no 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 TelegramBot
que 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);
}
Constans
naturalmente 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_USERNAME
y int CREATOR_ID
. El ID del creador es necesario para mayor seguridad; podrás encontrarlo un poco más adelante.
Lanzamiento
Crea una claseApplication
que contendrá un método main()
con el código necesario para inicializar el bot.
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
GO TO FULL VERSION