рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдмрд╣реБрдд рдкрд╣рд▓реЗ рдореИрдВрдиреЗ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рдерд╛ рдХрд┐ рдЖрдк рдореЗрд░реЗ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдмреЙрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдмреЙрдЯ - рдЗрд╡реЗрдВрдЯ рдкреНрд▓рд╛рдирд┐рдВрдЧ рдЕрд╕рд┐рд╕реНрдЯреЗрдВрдЯрдкреАрдПрдо рдХреЛ рдХрдИ рд╕рд╡рд╛рд▓ рдорд┐рд▓реЗ, рдореИрдВрдиреЗ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдХреЗ рд▓рд┐рдП рдмреЙрдЯ рдмрдирд╛рдиреЗ рдХрд╛ рд╕рд╡рд╛рд▓ рдХрд╛рдлреА рд▓реЛрдХрдкреНрд░рд┐рдп рд╣реИред
рдЙрдиреНрд╣реЛрдВрдиреЗ рдореБрдЭрд╕реЗ рдмреЙрдЯ рдХрд╛ рд╕реНрд░реЛрдд рдХреЛрдб рдкреВрдЫрд╛, рдореБрдЭреЗ рд╡рд┐рднрд┐рдиреНрди рдмреЙрдЯ рдлреАрдЪрд░реНрд╕ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛, рдореБрдЭреЗ рдмреЙрдЯ рдФрд░ рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ред
рдореИрдВрдиреЗ рд▓реЗрдЦреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдЬрд┐рд╕рдореЗрдВ рдореИрдВ рдЙрди рдмреБрдирд┐рдпрд╛рджреА рдЪреАрдЬреЛрдВ рдХреЛ рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЬреЛ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдмреЙрдЯ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред
Java, Maven, TelegramAPI, Lombok, рдФрд░ Log4j рдЖрдкрдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред
рдХреМрди рдкрд░рд╡рд╛рд╣ рдХрд░рддрд╛ рд╣реИ - рдХреГрдкрдпрд╛, рдмрд┐рд▓реНрд▓реА рдХреЗ рдиреАрдЪреЗ ...
рдФрд░ рдореИрдВ рд╕реАрдзреЗ рдЯреНрд░рдореНрдк рдХрд╛рд░реНрдб рд╕реЗ рдЬрд╛рдКрдВрдЧрд╛ :)
рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рдХреНрдпрд╛ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЖрдк
рдпрд╣рд╛рдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рд╕реЛрд░реНрд╕ рдХреЛрдб рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред
"
рдорд╛рд╕реНрдЯрд░ " рд╢рд╛рдЦрд╛ рдореЗрдВ рдмреЙрдЯ рдХрд╛ рдЕрдВрддрд┐рдо рд╕рдВрд╕реНрдХрд░рдг рд╣реЛрдЧрд╛, рдЬрд┐рд╕реЗ рд╣рдо рдЖрдкрдХреЗ рд╕рд╛рде рдорд┐рд▓рдХрд░ рдирдП рд▓реЗрдЦреЛрдВ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд▓рд┐рдЦреЗрдВрдЧреЗред
рдЗрд╕ рд▓реЗрдЦ рдХрд╛ рдкреВрд░реНрдг рд╕реНрд░реЛрдд "
Part1-Base " рд╢рд╛рдЦрд╛ рдореЗрдВ рд╣реЛрдЧрд╛ред
рдЗрд╕ рднрд╛рдЧ рдореЗрдВ, рд╣рдо рдЖрдкрдХреЗ рд╕рд╛рде рдПрдХ рдмреБрдирд┐рдпрд╛рджреА рдЯреЗрдореНрдкрд▓реЗрдЯ рдмрдирд╛рдПрдВрдЧреЗ рдЬреЛ рдирд┐рдореНрди рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдЧрд╛:
- рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рд╕рд░реНрд╡рд░ рдкрд░ рдмреЙрдЯ рд░рдЬрд┐рд╕реНрдЯрд░
- рдмреЙрдЯ рдХреЛ рд▓рд┐рдЦреЗ рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреЗ рд╣реИрдВ
- / рдкреНрд░рд╛рд░рдВрдн рдЖрджреЗрд╢ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрдВ
рдПрдХ рдорд╛рдирдХ рдорд╛рд╡реЗрди рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрдирд╛рдПрдВ
(
рдореИрдВ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдорд╛рд╣реМрд▓ рдФрд░ рдЬрд╛рд╡рд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╕реЗ рдмреБрдирд┐рдпрд╛рджреА рдЪреАрдЬреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдиреБрдЕрд▓ рдХреЛ рдпрд╛рдж рдХрд░реВрдВрдЧрд╛ред рдпреЗ рд╕рднреА рдЪреАрдЬреЗрдВ Google рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рдЖрд╕рд╛рди рд╣реИрдВред рдФрд░ рдЕрдЧрд░ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╕рд╡рд╛рд▓ рд▓рд┐рдЦреЗрдВ )ред
рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рд╣рдореЗрдВ рдХрд┐рди рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАредрд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣
рд▓реЛрдореНрдмреЛрдХ рд╣реИ ред рдпрд╣ рдХреНрдпрд╛ рд╣реИ рдФрд░ рдХреНрдпреЛрдВ - рдЖрдк рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
рдпрд╣рд╛рдВ ред
рдФрд░ рд▓рдХрдбрд╝рд╣рд╛рд░рд╛ рдЬреЛрдбрд╝рдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВред рдореИрдВ
log4j рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдереЛрдбрд╝рд╛ рдЖрдЧреЗ рдореИрдВ рдЖрдкрдХреЛ рджрд┐рдЦрд╛рддрд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдбреАрдмрдЧ рдХрд░рддреЗ рд╕рдордп рдФрд░ рдЯреЗрд▓реАрдЧреНрд░рд╛рдордПрдкреАрдЖрдИ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреА рдЧрд╣рд░реА рд╕рдордЭ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рддрдирд╛ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.10</version> <scope>provided</scope> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency>
рдФрд░, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдХреЗ рд▓рд┐рдП рдПрдХ рдмреЙрдЯ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рдлрд┐рд░ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рд╕реЗ рд╣реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА:
<dependency> <groupId>org.telegram</groupId> <artifactId>telegrambots</artifactId> <version>3.5</version> </dependency>
рдкреЛрдо рдлрд╛рдЗрд▓ рдХреА рд╕рдВрд░рдЪрдирд╛
рдпрд╣рд╛рдВ рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА
рд╣реИредPom.xml рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рдВрд░рдЪрдирд╛
рдпрд╣рд╛рдБ рджреЗрдЦреА рдЬрд╛ рд╕рдХрддреА
рд╣реИ ред
рдЗрд╕рдХреЗ рдмрд╛рдж, рд╣рдо рдЖрдзрд╛рд░ рд╡рд░реНрдЧ
Bot.java рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ , рдЬреЛ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╣рдорд╛рд░реА рд╕рднреА рдмрд╛рддрдЪреАрдд рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдЧрд╛ред рд╣рдо LongPolling рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВрдЧреЗ рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЗ рд▓рд┐рдП рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдкреНрд░рдорд╛рдгрдкрддреНрд░реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рдЗрд╕реЗ рдХрд┐рд╕реА рднреА рдорд╢реАрди рд╕реЗ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЬрд╛рд╡рд╛ рдСрди рдмреЛрд░реНрдб рд╣реИред
рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо
TelegramLongPollingBot рд╡рд░реНрдЧ рд╕реЗ рдЗрдирд╣реЗрд░рд┐рдЯ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдмреБрдирд┐рдпрд╛рджреА рддрд░реАрдХреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ:
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╢реВрдиреНрдп onUpdateReceived (рдЕрдкрдбреЗрдЯ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ)
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ getBotUsername ()
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ getBotToken ()рдФрд░ рдЦреБрдж рд╕реЗ рд╣рдореЗрдВ рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдЬреЛ рд╣рдорд╛рд░реЗ рдмреЙрдЯ рдХреЛ рдЯреЗрд▓реАрдЧреНрд░рд╛рдордПрдкреАрдЖрдИ рд╕реЗ рдЬреЛрдбрд╝реЗрдЧреА:
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╢реВрдиреНрдп рдмреЙрдЯрдирдХрдиреЗрдХреНрдЯ () import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; import org.apache.log4j.Logger; import org.telegram.telegrambots.TelegramBotsApi; import org.telegram.telegrambots.api.objects.Update; import org.telegram.telegrambots.bots.TelegramLongPollingBot; import org.telegram.telegrambots.exceptions.TelegramApiRequestException; @AllArgsConstructor @NoArgsConstructor public class Bot extends TelegramLongPollingBot { private static final Logger log = Logger.getLogger(Bot.class); final int RECONNECT_PAUSE =10000; @Setter @Getter String userName; @Setter @Getter String token; @Override public void onUpdateReceived(Update update) {
рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рд╕рдм рдХреБрдЫред рдпрд╣ рдХреЛрдб рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рд╕рд░реНрд╡рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рд╕рдВрдмреЛрдзрд┐рдд рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдиреЗ рдкрд░ рдпрд╣ рд▓реЙрдЧ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рджрд░реНрдЬ рдХрд░реЗрдЧрд╛ рдЬрд┐рд╕реЗ рдЙрд╕рдиреЗ рдЕрдкрдбреЗрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдерд╛ред
рдЖрдЗрдП рдПрдХ рд╡рд░реНрдЧ рдмрдирд╛рдПрдВ рдЬреЛ рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдХреЛ рдЪрд▓рд╛рдПрдЧрд╛ред
рдпрд╣ рд╡рд░реНрдЧ App.java рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдлрд╝рд╛рдЗрд▓ рд╕реЗ рд▓рд┐рдВрдХ рдХрд░реЗрдВ:
рдпрд╣рд╛рдБ package com.example.telegrambot; import com.example.telegrambot.bot.Bot; import org.apache.log4j.Logger; import org.telegram.telegrambots.ApiContextInitializer; public class App { private static final Logger log = Logger.getLogger(App.class); public static void main(String[] args) { ApiContextInitializer.init(); Bot test_habr_bot = new Bot("test_habr_bot", "1012522162:AAHLvPVqKF48LdqnsvS3l5YrJfvFey6dBa0"); test_habr_bot.botConnect(); } }
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдмреЙрдЯ рдХреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдХреЗрд╡рд▓ "рдмреЙрдЯ рдиреЗрдо" рдФрд░ "рдЯреЛрдХрди" рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдо рдЕрдкрдиреЗ рдмреЙрдЯ рдХреНрд▓рд╛рд╕ рдХреЗ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ рдкрд╛рд╕ рдХрд░реЗрдВрдЧреЗред
рдЖрдк рд╕рднреА рдмреЙрдЯреНрд╕ рдХреЗ рдкрд┐рддрд╛ рд╕реЗ рдмреЙрдЯ рдХреЗ рд▓рд┐рдП рдирд╛рдо рдФрд░ рдЯреЛрдХрди рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ :) рдЙрд╕реЗ рдПрдХ рддрд╛рд░ рдореЗрдВ рд▓рд┐рдЦрдХрд░ред
рдЙрдирдХрд╛ рдЙрдкрдирд╛рдо:
@BotFatherрдЙрд╕рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд░ рдмрд╣реБрдд рд╕рд░рд▓ рдФрд░ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╣реИред
рдЖрдЬреНрдЮрд╛ рдкрд░
/ рдиреНрдпреВрдмреЙрдЯ
рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдЖрдкрдХреЛ рдпрд╣ рд╕рдВрд╡рд╛рдж рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП:

рд╡реЗ рдпрд╣рд╛рдБ рдпрд╣ рднреА рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд╣реИ, рдЗрд╕ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдХрд┐рд╕реА рдХреЛ рднреА рди рджрд┐рдЦрд╛рдПрдБ, рдЕрдиреНрдпрдерд╛ рдХреЛрдИ рдЕрдиреНрдп рд╡реНрдпрдХреНрддрд┐ рдЖрдкрдХреЗ рдмреЙрдЯ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░ рд╕рдХреЗрдЧрд╛ :)
рдЖрдк рдХрд╣реЗрдВрдЧреЗ рдХрд┐ рдореИрдВ рдмрд╣реБрдд рд╕рдЯреАрдХ рдирд╣реАрдВ рд╣реВрдВ ... рд╢рд╛рдпрдж, рд▓реЗрдХрд┐рди рдмреЙрдЯ рдХреЗ рдкрд┐рддрд╛ рд╣рдореЗрдВ рдЯреЛрдХрди рдмрджрд▓рдиреЗ рдФрд░ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЛ рдпрд╛рдж рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ рдЬреЛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдкрд╣реБрдВрдЪ рдореЗрдВ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдЬрдм рдЖрдк рдореЗрд░реЗ рдбреЗрдЯрд╛ рд╕реЗ рдЬреБрдбрд╝рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдирд┐рдореНрди рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧрд╛:
2019-12-04 13:44:25,252[DEBUG][main ][ com.example.telegrambot.bot.Bot] - Bot token: 1012522162:AAF5D49N4NreEJfCk0aOsC-UnmIu_GLkoyc 2019-12-04 13:44:26,613[ERROR][main ][ com.example.telegrambot.bot.Bot] - Cant Connect. Pause 10sec and try again. Error: Error removing old webhook
рдЗрд╕рд▓рд┐рдП рдореЗрд░реЗ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдЖрдк рдХрдиреЗрдХреНрдЯ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рдЕрдкрдирд╛ рдкрдВрдЬреАрдХрд░рдг рдХрд░реЗрдВред рдХрдХреНрд╖рд╛
App.java рдореЗрдВ рдирдпрд╛ рдбреЗрдЯрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ
рдЕрдм рдРрдк рдХреНрд▓рд╛рд╕ рдореЗрдВ рдореБрдЦреНрдп рдкрджреНрдзрддрд┐ рдХреЛ рдЪрд▓рд╛рдХрд░, рд╣рдо рдЕрдкрдиреЗ рдмреЙрдЯ рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдирдП рд╕рдВрджреЗрд╢реЛрдВ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВред рд╡рд╣ рд╣рдореЗрдВ рд╕рд╛рдВрддреНрд╡рдирд╛ рдореЗрдВ рдЕрдкрдиреЗ рдХрд╛рд░реНрдпреЛрдВ рдФрд░ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рд┐рдЦреЗрдВрдЧреЗред
log4j
рдпрд╛рдж рд░рдЦреЗрдВ, рдКрдкрд░ рдореИрдВрдиреЗ рд▓реЙрдЧ 4 рдЬреЗ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХреА рдереАред рдФрд░ рдпрд╣рд╛рдВ рдЬрд┐рдЬреНрдЮрд╛рд╕реБ рдХреЗ рд▓рд┐рдП, рдЙрдкрдпреЛрдЧреА рдбреЗрдЯрд╛ рдХрд╛ рдПрдХ рдХреНрд▓реЙрдиреНрдбрд╛рдЗрдХ рдЦреБрд▓рддрд╛ рд╣реИред
Log4j.properties рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рддреГрддреАрдп-рдкрдХреНрд╖ рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд▓реЙрдЧрд┐рдВрдЧ рдФрд░ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд▓реЙрдЧрд┐рдВрдЧ рд╕реНрддрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдмреБрдирд┐рдпрд╛рджреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╣реИрдВ рдФрд░ рд╣рдорд╛рд░реЗ рдмреЙрдЯ рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЛрдВ рдХреЗ рд▓рд┐рдПред
log4j.rootLogger= error, file log4j.logger.com.example.telegrambot.App = debug, stdout log4j.logger.com.example.telegrambot.bot.Bot = debug, stdout
рд▓реЙрдЧрд┐рдВрдЧ рдХрд╛ рдореВрд▓ рд╕реНрддрд░ рддреНрд░реБрдЯрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдмреЙрдЯ рдФрд░ рдРрдк рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП, рдбрд┐рдмрдЧ рд╕реНрддрд░ рдкрд░ рд▓реЙрдЧ рдЖрдЙрдЯрдкреБрдЯ рдХрд╛ рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдпреЗ рд╕реНрддрд░ рдХреНрдпрд╛ рд╣реИрдВ рдФрд░ рдпреЗ рдХреИрд╕реЗ рднрд┐рдиреНрди рд╣реИрдВ - рдЖрдк Google рдореЗрдВ рдЖрд╕рд╛рдиреА рд╕реЗ рдЬрд╛рди рд╕рдХрддреЗ рд╣реИрдВредрдпрджрд┐ рдЖрдк рдпрд╣ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдХреИрд╕реЗ рдФрд░ рдХрд┐рд╕ рдХреНрд░рдо рдореЗрдВ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЖрдкрдХреЗ рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рддреА рд╣реИ, рддреЛ рд╕рд╛рдорд╛рдиреНрдп рд▓реЙрдЧрд┐рдВрдЧ рдореЛрдб рдХреЛ рдирд┐рдореНрди рд╕реНрддрд░ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдВ: рдЬрд╛рдирдХрд╛рд░реА рдпрд╛ рдбрд┐рдмрдЧред
рдФрд░ рдЬрдм рдЖрдк рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдХрдВрд╕реЛрд▓ рдореЗрдВ рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ, рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдХрд┐рддрдиреА рджрд┐рд▓рдЪрд╕реНрдк рдЪреАрдЬреЗрдВ рд╣реЛрддреА рд╣реИрдВред рдмреЙрдЯ рдирд╛рдо рдФрд░ рдЯреЛрдХрди рдХреЗ рд╕рд╛рде рдЖрдкрдХреЗ рдХрд╛рд░реНрдп рдХрд┐рддрдиреА рдмрд╛рд░ рдкреНрд░рджреВрд╖рд┐рдд рд╣реЛрддреЗ рд╣реИрдВред
рдЗрд╕ рдкрдВрдХреНрддрд┐ рдХреЗ рд╕рд╛рде рд▓реЙрдЧрд┐рдВрдЧ рд╕реНрддрд░ рдмрджрд▓рддреЗ рд╣реИрдВ:
рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕реНрддрд░ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд▓реЙрдЧ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд░рдЦреЗрдВ:
log4j.rootLogger= info, file
рдбрд┐рдмрдЧ рд╕реНрддрд░ рдХреЗ рд▓рд┐рдП, рдЗрд╕ рддрд░рд╣:
log4j.rootLogger= debug, file
рдФрд░ рдирд┐рд╖реНрдХрд░реНрд╖ рдореЗрдВ
рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдмреЙрдЯ рд╣реИ: рдпрд╣ рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рд╣рдореЗрдВ рд╕реБрдВрджрд░ рд▓реЙрдЧ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдФрд░ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╕рдВрджреЗрд╢ рдЖ рд░рд╣реЗ рд╣реИрдВред
рд▓реЗрдХрд┐рди рдКрдкрд░, рдореИрдВрдиреЗ рдЖрдкрд╕реЗ рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ рдерд╛ рдХрд┐ рдмреЙрдЯ рд╕реНрдЯрд╛рд░реНрдЯ рдХрдорд╛рдВрдб рдХрд╛ рдЬрд╡рд╛рдм рджреЗрдЧрд╛ред рдЪрд▓реЛ рдкреНрд░рд╛рдкреНрдд рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдмрджрд▓ рджреЗрдВред
@Override public void onUpdateReceived(Update update) { log.debug("Receive new Update. updateID: " + update.getUpdateId()); Long chatId = update.getMessage().getChatId(); String inputText = update.getMessage().getText(); if (inputText.startsWith("/start")) { SendMessage message = new SendMessage(); message.setChatId(chatId); message.setText("Hello. This is start message"); try { execute(message); } catch (TelegramApiException e) { e.printStackTrace(); } } }
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдХреЛрдб рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдмреЙрдЯ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд░рддрд╛ рд╣реИ:
- рдпрд╣ рдПрдХ рдЕрдкрдбреЗрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рд▓реЙрдЧ рдореЗрдВ рдЕрдкрдирд╛ рдЖрдИрдбреА рдирдВрдмрд░ рдХреИрдкреНрдЪрд░ рдХрд░рддрд╛ рд╣реИред
- рдкреНрд░реЗрд╖рд┐рдд рд╕рдВрджреЗрд╢ рд╕реЗ рдЪреИрдЯ рдЖрдИрдбреА рдФрд░ рд╕рдВрджреЗрд╢ рдХрд╛ рдкрд╛рда рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ
- рдЬрд╛рдБрдЪрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдкрд╛рда рдПрдХ "/ start" рдХрдорд╛рдВрдб рд╣реИ
- рдФрд░ рдПрдХ рд╕рдлрд▓ рддреБрд▓рдирд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдПрдХ рд╕рдВрджреЗрд╢ рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдЪреИрдЯ рдкрд░ рднреЗрдЬрддрд╛ рд╣реИ, рдкрд╣рд▓реЗ рдкреНрд░рд╛рдкреНрдд рдЖрдИрдбреА рдХреЗ рд╕рд╛рде
рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕реЗ рдЙрдкрдпреЛрдЧреА рдФрд░ рджрд┐рд▓рдЪрд╕реНрдк рдкрд╛рдПрдВрдЧреЗред
рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдореИрдВ рдЖрдкрдХреЛ рджрд┐рдЦрд╛рдКрдБрдЧрд╛ рдХрд┐ рдЗрд╕реЗ рдореЗрд░реЗ рдмреЙрдЯ рдореЗрдВ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
- рд╡рд┐рднрд┐рдиреНрди рдЯреАрдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ
- рдЗрди рдЖрджреЗрд╢реЛрдВ рдХреЛ рд╕рдВрдЪрд╛рд▓рдХреЛрдВ рдХреЛ рд╕реМрдВрдкрдирд╛
- рдорд▓реНрдЯреАрдереНрд░реЗрдбрд┐рдВрдЧ: рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдФрд░ рднреЗрдЬрдирд╛
- рд╕рдВрджреЗрд╢ рд╕реНрд╡рд░реВрдкрдг
- рдмрдЯрди рдФрд░ рдХреЙрд▓рдмреИрдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ
- рдкреБрд░рд╛рдиреА рдкреЛрд╕реНрдЯ рдХрд╛ рд╕рдВрдкрд╛рджрди
рдЗрд╕ рдЖрдзрд╛рд░ рдкрд░, рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдкрд╣реБрдВрдЪ рдореЗрдВ, рдореЗрд░реЗ 2 рдмреЙрдЯ рдЕрдм рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред
рдПрдХ рдмрд╛рдд рдЬреЛ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рд╡рд╣
рдПрдХ рдЗрд╡реЗрдВрдЯ рдкреНрд▓рд╛рдирд┐рдВрдЧ рдЕрд╕рд┐рд╕реНрдЯреЗрдВрдЯ рд╣реИ ред
рдФрд░ рджреВрд╕рд░рд╛ -
рдЪреАрдХреВ рдлрд┐рд▓реНрдо рдкреНрд░рд╢рдВрд╕рдХ ред рд╡рд╣ рдлрд┐рд▓реНрдореЛрдВ рд╕реЗ рдкреНрдпрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рдХреБрдЫ рдЬрд╛рдирддреЗ рд╣реИрдВред рдФрд░ рдЗрд╕рд╕реЗ рднреА рдЕрдзрд┐рдХ рд╡рд╣ рдЕрдкрдиреЗ рдЬреНрдЮрд╛рди рдХреЛ рдЖрдкрдХреЗ рд╕рд╛рде рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реИред рд╡рд╣
рдПрдХ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдореЗрдВ рдЕрдкрдиреЗ
рдЪреИрдирд▓ рдХрд╛ рдиреЗрддреГрддреНрд╡ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╡рд╣ рдпрд╣ рддрдп рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЙрд╕реЗ рдХреМрди рд╕реА рдлрд┐рд▓реНрдореЗрдВ рдкрд╕рдВрдж рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЖрдкрдХреЛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рд╡рд╣ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рд╢реИрд▓реА рджреНрд╡рд╛рд░рд╛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЪрдпрди рдХреИрд╕реЗ рдХрд░реЗрдВ рдФрд░ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╕рд┐рдлрд╛рд░рд┐рд╢реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рджрд╕реНрдпрддрд╛ рдмрдирд╛рдПрдВред рд╡рд╣ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдРрд╕реА рдХреГрддрд┐рдпреЛрдВ рдХреЛ рдХреИрд╕реЗ рдЦреЛрдЬрдирд╛ рд╣реИ рдЬреЛ рдЖрдкрдиреЗ рдХрднреА рдирд╣реАрдВ рд╕реБрдирд╛ рд╣реИ рдФрд░ рдпрд╣ рднреА рдирд╣реАрдВ рдЬрд╛рдирддреЗ рдХрд┐ рдРрд╕реА рдлрд┐рд▓реНрдореЗрдВ рдХреИрд╕реЗ рдорд┐рд▓ рд╕рдХрддреА рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреНрдпрд╛ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреА "рдЬрдВрдЧрд▓реА" рд╕рдВрдпреЛрдЬрди рд╡рд╛рд▓реА рдлрд┐рд▓реНрдореЗрдВ рд╣реИрдВ рдЬреИрд╕реЗ: рд╡реГрддреНрддрдЪрд┐рддреНрд░, рдбрд░рд╛рд╡рдиреА, рдХреЙрдореЗрдбреАред
рд▓реЗрдХрд┐рди рдмреЙрдЯ рдСрди рдХрдорд╛рдВрдб
2010-
рд╡рд╣ рдХрд╣реЗрдВрдЧреЗ рдХрд┐ реирежрезреж рд╕реЗ рд▓реЗрдХрд░ рд╡рд░реНрддрдорд╛рди рд╕рдордп рддрдХ рдРрд╕реА рдлрд┐рд▓реНрдореЛрдВ рдХреА рд╢реВрдЯрд┐рдВрдЧ рем рдЯреБрдХрдбрд╝реЛрдВ рдореЗрдВ рдХреА рдЧрдИ рд╣реИ :)
рд╕рдорд╛рди рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдХрд╛рдо рдХрд░реЗрдВ, рдХрдорд╛рдВрдб рдХреЗ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдФрд░ рдЕрдиреБрдХреНрд░рдо рдХреЛ рдкрд╛рд░реНрд╕ рдХреИрд╕реЗ рдХрд░реЗрдВ, рд╣рдо рдЖрдкрдХреЗ рд╕рд╛рде рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рдХрд╛рд╢рдиреЛрдВ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХрд░реЗрдВрдЧреЗред
рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдордЬреЗрджрд╛рд░ рд╣реИ :)