Раньше создавал бота для уведомлений на сайте.
Сейчас по прежнему решил создать бота, но после как захожу в бота, отправляю старт, бот не дает id чата.

  • 425 просмотров

Сорок процентов американцев никогда не посещали стоматолога.


Важно для прочтения!

Если ты не против, то изучи ООП и Jav'y прежде, чем учить другие библиотеки. Ибо ты не будешь браться за физику, не выучив математику. Тут то же самое.


Сегодня мы будем писать простейшего бота Telegram, который будет отвечать на команды. Такая статья была, но писали бота на Питоне.
Почему я выбрал именно Jav'y

Java в плане ботов, серверов, плагинов да и вообще программ будет удобнее для меня.

1. Виртуальная машина хоть и долгая, но если обрабатывать события в несколько потоков, то будет работать быстро.(Вообще для многих серверов/мультиплеерных игр в одном потоке не всегда получится обрабатывать события, в Jav'e сделать это гораздо проще)

2. Наличие хорошей документации и Javadoc'ов, которые можно сделать для всех библиотек(не только для системных)


0. А что такое «бот»?

Бот — это профиль в соцсети/мессенджере(в данном случае Telegram) который отвечает на команды.( В любом случае все действия буду происходить после выполнения команды)

Тип чата с ботом — это переписка 1 на 1.
1.С чего же начинать?


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

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

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

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

И пишем в него:
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:
image

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

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

Привет, читатель.Сегодня мы будем писать простейшего бота Telegram, который будет отвечать на команды. Такая статья была, но писали бота на Питоне.Бот — это профиль в соцсети/мессенджере(в данном случае Telegram) который отвечает на команды.( В любом случае все действия буду происходить после выполнения команды)Тип чата с ботом — это переписка 1 на 1. Здесь качать библиотеку Telegram(обязательно with-dependiciens)IDE можно выбрать любую, я бы порекомендовал eclipse.Импотрируем библиотеку Телеграма и приступаем.Для того чтобы отвечать на команды, класс должен наследовать TelegramLongPillingBotСоздаём класс:И пишем в него:Получить токен и username можно вбив в поиск @BotFather и написать ему /newbotВ телеграме нет «приветствующего сообщения», но когда мы нажимаем кнопку «Start» чтобы начать общение с ботом, то автоматом прописывается команда "/start", поэтому для начала добавим именно её. В telegramapi нету метода отправить сообщение по типу send(строка), но мы его создадим, после всех войдов пишем:А в UpdateReceived дописываем это:Можно в Runnable JAR File так как у нас есть метод main, но лучше запускать прямо из IDE:Когда мы запустили бота, зарегистрировали и получили токен у BotFather, то мы можем написать ему /start и увидеть что всё работает. Но бот будет работать только когда он запущен.(Много ему не нужно, за 50-100 рублей/месяц на хостинге можно держать). Также с помощью Telegram API можно отправлять картинки, создавать inline-ботов с кнопками и многое другое, но о этом уже в продолжении…Спасибо всем за просмотр!

В связи с блокировкой telergam.Подскажите идею оповещалки для бота на lua.

В связи с блокировкой telergam.
Подскажите идею оповещалки для бота на lua.
СМС оповещение у меня сделано через свой модем,
но хочется что-нибудь халявное как с telegram.

★5