Бот для телеграмма на JAVA, как обойти блокировку в коде?

Доброго времени суток! Хотел написать бота для телеграмма, но мой провайдер отчаянно блокирует его, поэтому моя прога не может сконектиться к их серверам. Использую TelegramLongPollingBot . Как мне подключиться к прокси через сам код и уже оттуда вести работу?
  • Вопрос задан
  • 3595 просмотров
Пригласить эксперта
Ответы на вопрос 2
Taraflex
@Taraflex
Ищу работу. Контакты в профиле.
Не используйте LongPolling - решение не годится для продакшена, только вебхуки.
Чтобы не тратится на домен можно использовать самоподписанный сертификат на ip.
Пример генерации сертификата
openssl req -newkey rsa:1024 -sha256 -nodes -keyout /home/localhost.key -x509 -days 3650 -out /home/localhost.cert -subj "/C=US/ST=New York/L=Brooklyn/O=Example Company/CN=<тут ip сервера>"


Хостите бота на заграничных серверах.

Для локальной разработки использовать https://localtunnel.github.io/www/
Вещь жуть какая нестабильная, но из аналогичных решений это единственный сервис, что предоставляет именованные поддомены бесплатно.

Чтобы немного решить проблемы с падениями, запускайте программу в цикле
Вариант для windows
FOR /L %N IN () DO @lt --port <локальный порт> --subdomain <поддомен>
Ответ написан
Комментировать
OLEG4120
@OLEG4120
Используйте последнюю версию библтотеки, установите Tor браузер и создавайте пока примерно так:
TelegramBotsApi telegramBotsApi = new TelegramBotsApi();

// Set up Http proxy
DefaultBotOptions botOptions = ApiContext
        .getInstance(DefaultBotOptions.class);
botOptions.setProxyHost("127.0.0.1");
botOptions.setProxyPort(9150);
// Select proxy type: [HTTP|SOCKS4|SOCKS5] (default: NO_PROXY)
botOptions.setProxyType(DefaultBotOptions.ProxyType.SOCKS5);

try {
    telegramBotsApi.registerBot(new Bot(BotConfig.BOT_TOKEN, BotConfig.BOT_USERNAME, botOptions));
} catch (TelegramApiRequestException e) {

}

public class Bot extends AbilityBot {
...
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы