JavaRush /Blogue Java /Random-PT /Telegram Ability Bot: um bot que pode conduzir um diálogo...
Chundrik
Nível 35
Санкт-Петербург

Telegram Ability Bot: um bot que pode conduzir um diálogo

Publicado no grupo Random-PT
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. Telegram Ability Bot: um bot que pode conduzir um diálogo - 1

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

Telegram Ability Bot: um bot que pode conduzir um diálogo - 2Para começar, precisaremos de um projeto Maven, Java 8 e Intelliji Idea Ultimate. Inserir pom.xml: Telegram Ability Bot: um bot que pode conduzir um diálogo - 3Nã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 TelegramBotque 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);
    }
Constansnaturalmente 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_USERNAMEe 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 classe Applicationque conterá um método main()com o código necessário para inicializar o bot.Telegram Ability Bot: um bot que pode conduzir um 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();
        }
    }
}
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
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION