Os bots não são apenas interessantes, mas também úteis. Ao trabalhar neles, você poderá obter um projeto simples, mas funcional, para automatizar qualquer função e, ao longo do caminho, familiarizar-se com lambdas, Git e Heroku. Quando criei o bot, não encontrei instruções sobre como fazer algo um pouco mais complexo do que um simples echo bot. Queria algo mais razoável: por exemplo, um canal que pudesse conduzir um diálogo real, cujo desenvolvimento mudasse dependendo da resposta escolhida. Falarei sobre meu projeto, que durou duas semanas, e darei atenção especial à implantação no Heroku, pois encontrei grandes dificuldades na fase final.
Cadastro
Para começar, você precisa registrar o bot, recebendo um nome e um token, que precisaremos mais tarde. Felizmente, isso não é difícil: basta abrir o Telegram, encontrar @BotFather e digitar /start. Em resposta, você receberá uma lista de comandos - precisamos de /newbot. Criamos um nome e, em seguida, um nome de usuário, que deve terminar em -bot, por exemplo, Consequences1Bot. O nome de usuário deve ser original, então você terá que usar sua imaginação aqui. Em resposta, o BotFather enviará um token, que é melhor salvar imediatamente.Começar
Para começar, precisaremos de um projeto Maven, Java 8 e Intelliji Idea Ultimate. Inserirpom.xml
: Não se esqueça de clicar no botão Carregar alterações do Maven, que aparecerá no canto superior direito. Certifique-se também de estar usando Java 8 ou superior, isso pode ser encontrado em Arquivo -> Configurações do projeto -> Projeto. Na pasta src.main.java
, crie uma subpasta com o nome do seu bot, para mim é um pacote example.TelegramBot
. Primeiro criamos uma classe TelegramBot
que herda AbilityBot
. Se o Idea sublinhar em vermelho (e está), clique em Importar classe. O AbilityBot possui um método que precisa ser implementado - creatorId()
.
@Override
public int creatorId() {
return Constants.CREATOR_ID;
}
Também precisamos criar dois construtores: um sem argumentos, e usando o segundo chamamos o construtor da superclasse:
public TelegramBot() {
this(Constants.BOT_TOKEN, Constants.BOT_USERNAME);
}
private TelegramBot(String botToken, String botUsername) {
super(botToken, botUsername);
}
Constans
naturalmente fica vermelho - esta interface precisa ser criada. Ele armazenará as strings e o número de ID. Claro que você não precisa se preocupar e deixar tudo no documento principal, mas assim ficará muito mais claro. Então, vamos criar uma interface Constans
. As primeiras variáveis serão String BOT_TOKEN
(o token que o BotFather enviou) String BOT_USERNAME
e int CREATOR_ID
. O ID do criador é necessário para segurança adicional - você poderá encontrá-lo um pouco mais tarde.
Lançar
Crie uma classeApplication
que conterá um método main()
com o código necessário para inicializar o 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();
}
}
}
Agora você pode iniciar o bot a partir do método principal, mas ele não executará nenhuma ação. Somente o silêncio será sua resposta. Na próxima parte descreverei como mudar isso. PARTE 2
GO TO FULL VERSION