Spring boot Telegram bot
Пишу бота который активно работает с Service spring-а. Только подключил proxy, но spring boot хочет 2 раз к нему подключиться... Вот код ошибки:
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());
}
}
}
А также ошибка:
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());
}
}
Как сделать чтобы работал корректно с прокси и без ошибки BOTSESSION? Помогите, спасибо!