Бот для Telegram на Java | ФОРУМ СОЦИАЛЬНОЙ ИНЖЕНЕРИИ ⭐️MeHack⭐️ - Читы, базы, раздачи аккаунтов, сливы скриптов, способы заработка

Бот для Telegram на Java

Тема в разделе "Программирование", создана пользователем Чёрнокнижник, 14.12.17.Просмотров: 510

  1. Чёрнокнижник Администратор | Повелитель китайцев

    Чёрнокнижник

    Администратор

    341 сообщения
    295 симпатий
    4
    розыгрышей
    8 лет с нами
    1 месяц с нами
    20 дней с нами
    @nevv_val
    1.С чего же начинать?

    Скрытый контент. Для просмотра Вы должны быть зарегистрированным участником качать библиотеку Telegram(обязательно with-dependiciens)

    IDE можно выбрать любую, я бы порекомендовал eclipse.

    Импотрируем библиотеку Телеграма и приступаем.

    2.Наследование бота
    Для того чтобы отвечать на команды, класс должен наследовать TelegramLongPillingBot

    Создаём класс:


    [​IMG]

    И пишем в него:
    Код:
    package ru.thematdev.bot;
    
    import org.telegram.telegrambots.api.objects.Update;
    import org.telegram.telegrambots.bots.TelegramLongPollingBot;
    
    public class Example extends TelegramLongPollingBot{
           public static void main(String[] args) {
       ApiContextInitializer.init(); // Инициализируем апи
       TelegramBotsApi botapi = new TelegramBotsApi();
       try {
           botapi.registerBot(new Bot());
       } catch (TelegramApiException e) {
           e.printStackTrace();
       }
       }
       @Override
       public String getBotUsername() {
           return "USER";
                   //возвращаем юзера
       }
    
       @Override
       public void onUpdateReceived(Update e) {
           // Тут будет то, что выполняется при получении сообщения
       }
    
       @Override
       public String getBotToken() {
           return "YOUR_BOT_TOKEN";
                   //Токен бота
       }
    
    }
    Получить токен и username можно вбив в поиск @BotFather и написать ему /newbot

    3.Как же нам добавить в него что-нибудь?

    В телеграме нет «приветствующего сообщения», но когда мы нажимаем кнопку «Start» чтобы начать общение с ботом, то автоматом прописывается команда "/start", поэтому для начала добавим именно её. В telegramapi нету метода отправить сообщение по типу send(строка), но мы его создадим, после всех войдов пишем:


    Код:
     @SuppressWarnings("deprecation") // Означает то, что в новых версиях метод уберут или заменят
       private void sendMsg(Message msg, String text) {
           SendMessage s = new SendMessage();
           s.setChatId(msg.getChatId()); // Боту может писать не один человек, и поэтому чтобы отправить сообщение, грубо говоря нужно узнать куда его отправлять
           s.setText(text);
           try { //Чтобы не крашнулась программа при вылете Exception
               sendMessage(s);
           } catch (TelegramApiException e){
               e.printStackTrace();
           }
       }
    А в UpdateReceived дописываем это:
    Код:
    Message msg = e.getMessage(); // Это нам понадобится
           String txt = msg.getText();
           if (txt.equals("/start")) {
               sendMsg(msg, "Hello, world! This is simple bot!");
           }
    4.Ура, всё получилось, как запустить?
    Можно в Runnable JAR File так как у нас есть метод main, но лучше запускать прямо из IDE:


    [​IMG]

    Когда мы запустили бота, зарегистрировали и получили токен у BotFather, то мы можем написать ему /start и увидеть что всё работает. Но бот будет работать только когда он запущен.(Много ему не нужно, за 50-100 рублей/месяц на хостинге можно держать). Также с помощью Telegram API можно отправлять картинки, создавать inline-ботов с кнопками и многое другое.

    Спасибо всем за просмотр!