@EugenVoron

Почему для телеграм бота нужны прокси на pythonanywhere?

Планирую использовать PythonAnywhere для хоста ТГ Бота. На их сайте дана подробная статья с объяснением по написанию ТГ-бота, не понятна причина, по которой требуется прокси его создании. (В статье указано, что так нужно делать на бесплатных аккаунтах PythonAnywhere, но меня интересует технический вопрос)
from flask import Flask, request
import telepot
import urllib3

proxy_url = "http://proxy.server:3128"
telepot.api._pools = {
    'default': urllib3.ProxyManager(proxy_url=proxy_url, num_pools=3, maxsize=10, retries=False, timeout=30),
}
telepot.api._onetime_pool_spec = (urllib3.ProxyManager, dict(proxy_url=proxy_url, num_pools=1, maxsize=1, retries=False, timeout=30))

secret = "A_SECRET_NUMBER"
bot = telepot.Bot('YOUR_AUTHORIZATION_TOKEN')
bot.setWebhook("https://YOUR_PYTHONANYWHERE_USERNAME.pythonanywhere.com/{}".format(secret), max_connections=1)

app = Flask(__name__)

@app.route('/{}'.format(secret), methods=["POST"])
def telegram_webhook():
    update = request.get_json()
    if "message" in update:
        chat_id = update["message"]["chat"]["id"]
        if "text" in update["message"]:
            text = update["message"]["text"]
            bot.sendMessage(chat_id, "From the web: you said '{}'".format(text))
        else:
            bot.sendMessage(chat_id, "From the web: sorry, I didn't understand that kind of message")
    return "OK"


Вопрос по конкретно этой строчке

proxy_url = "http://proxy.server:3128"
telepot.api._pools = {
    'default': urllib3.ProxyManager(proxy_url=proxy_url, num_pools=3, maxsize=10, retries=False, timeout=30),
}
telepot.api._onetime_pool_spec = (urllib3.ProxyManager, dict(proxy_url=proxy_url, num_pools=1, maxsize=1, retries=False, timeout=30))
  • Вопрос задан
  • 435 просмотров
Решения вопроса 1
RimMirK
@RimMirK
Вроде человек. Вроде учусь. Вроде пайтону
первая же ссылка
Free accounts on PythonAnywhere have restricted Internet access -- they can only access sites on our whitelist. If you'd like a site to be added to the list, it will need an official public API -- if that site has one, then please post a link to the API docs.


Бесплатные учетные записи на PythonAnyWhere имеют ограниченный доступ в Интернет - они могут получить доступ только к сайтам вайтлиста Если вы хотите, чтобы сайт был добавлен в список, ему потребуется официальный общедоступный API - если он есть на этом сайте, пожалуйста, опубликуйте ссылку на документы API.


если своими словами - хостинг разрешает запросы не ко всем серверам (сайтам)
а через прокси это можно обойти
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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