Я пишу бот для телеграмм с Spring Boot, который работает с моими сервисами (beans). Теперь добавляю прокси в телеграмму при запуске. Это основная часть кода бота Telegram:
public class TelegramBotService extends TelegramLongPollingBot {
private UserTelegramLinkService userTelegramLinkService;
private UserService userService;
private SettingsService settingsService;
private PasswordEncoder passwordEncoder;
private final static String START_COMMAND = "/start";
private final static String EXIT_COMMAND = "/exit";
static {
ApiContextInitializer.init();
}
@Autowired
public TelegramBotService(UserService userService, UserTelegramLinkService userTelegramLinkService,
SettingsService settingsService, PasswordEncoder passwordEncoder) {
this.userService = userService;
this.userTelegramLinkService = userTelegramLinkService;
this.settingsService = settingsService;
this.passwordEncoder = passwordEncoder;
log.info("BOT REGISTERING2");
}
public TelegramBotService(DefaultBotOptions defaultBotOptions) {
super(defaultBotOptions);
log.info("BOT REGISTERING1");
}
@PostConstruct
public void registerBot() {
log.info("BOT REGISTERING");
TelegramBotsApi telegramBotsApi = new TelegramBotsApi();
// Set up Http proxy
DefaultBotOptions botOptions = ApiContext.getInstance(DefaultBotOptions.class);
botOptions.setProxyType(DefaultBotOptions.ProxyType.SOCKS5);
botOptions.setProxyHost("192.168.30.2");
botOptions.setProxyPort(3128);
try {
telegramBotsApi.registerBot(this);
log.info("bot successfully register");
} catch (TelegramApiException e) {
log.error("Error while registering bot in TelegramBotService error: {}", e.getLocalizedMessage());
}
}
}
Но мое приложение Spring, я не знаю почему, но оно пытается подключиться к Telegram два раза ... Ошибка:
Telegram Bots Api : BOTSESSION
org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException: Error getting updates
Вероятно, я думаю, что мое приложение Spring пытается подключиться два раза, как я уже говорил. Когда я удаляю эту часть кода, все в порядке, но я должен реализовать своего бота с прокси:
public TelegramBotService(DefaultBotOptions defaultBotOptions) {
super(defaultBotOptions);
log.info("BOT REGISTERING1");
}
@PostConstruct
public void registerBot() {
log.info("BOT REGISTERING");
TelegramBotsApi telegramBotsApi = new TelegramBotsApi();
// Set up Http proxy
DefaultBotOptions botOptions = ApiContext.getInstance(DefaultBotOptions.class);
botOptions.setProxyType(DefaultBotOptions.ProxyType.SOCKS5);
botOptions.setProxyHost("192.168.30.2");
botOptions.setProxyPort(3128);
try {
telegramBotsApi.registerBot(this);
log.info("bot successfully register");
} catch (TelegramApiException e) {
log.error("Error while registering bot in TelegramBotService error: {}", e.getLocalizedMessage());
}
}
Как мне правильно исправить этот код? Помогите, пожалуйста