@RaymanPy

Как использовать Proxy в TelegramBot?

Возникла проблема с запуском бота с помощью Proxy:
В инете нашел 2 варианта использования Proxy в PyTelegramBotApi:
1) http proxy
from telebot import apihelper
apihelper.proxy = {'http':'http://10.10.1.10:3128'}

При использовании данного способа выходит следуйщая ошибка:
requests.exceptions.SSLError: HTTPSConnectionPool(host='api.telegram.org', port=443): Max retries exceeded with url: /bot601452123:AAFiRXuFyHcoNdOsOI2ty9NXCPgx-3n14Uo/getUpdates?offset=1&timeout=123 (Caused by SSLError(SSLError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:833)'),))
[Finished in 2.4s]


Также есть метод с использованием SOCKS5
apihelper.proxy = {'https':'socks5://userproxy:password@proxy_address:port'}


Но он тоже не работает :
requests.exceptions.ConnectTimeout: SOCKSHTTPSConnectionPool(host='api.telegram.org', port=443): Max retries exceeded with url: /bot601452123:AAFiRXuFyHcoNdOsOI2ty9NXCPgx-3n14Uo/getUpdates?offset=1&timeout=20 (Caused by ConnectTimeoutError(<urllib3.contrib.socks.SOCKSHTTPSConnection object at 0x0000000004B28A20>, 'Connection to api.telegram.org timed out. (connect timeout=3.5)'))
[Finished in 6.9s]


Эти способы взяты из документации . Все модули обновлены .

2) Способ с использованием Socket

ip = 'ip'  # change your proxy's ip
port = port # change your proxy's port
socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, ip, port)
socket.socket = socks.socksocket

После которого не работает локальная БД(Mysql).
sqlalchemy.exc.InterfaceError: (mysql.connector.errors.InterfaceError) 2003: Can't connect to MySQL server on 'localhost:3306' (Socket error: 0x03: Network unreachable) (Background on this error at: http://sqlalche.me/e/rvf5)
  • Вопрос задан
  • 5225 просмотров
Решения вопроса 1
@ItNoN
requests.exceptions.SSLError: HTTPSConnectionPool(host='api.telegram.org', port=443): Max retries exceeded with url: /bot601452123:AAFiRXuFyHcoNdOsOI2ty9NXCPgx-3n14Uo/getUpdates?offset=1&timeout=123 (Caused by SSLError(SSLError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:833)'),))
[Finished in 2.4s]


Говорит, что SSL сертификат нужен.
Попробуй использовать рабочие прокси с протоколом https

from telebot import apihelper
apihelper.proxy = {'https':'https://88.204.154.155:8080''}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@KOSMOS31
А где это все прописывать нужно? какой файл исполняемый?
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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