Donc, j'utilise PyTelegramBotAPI pour envoyer des messages à ma chaîne avec l'aide de bot. Aujourd'hui, je dois configurer Proxy pour mon bot, je lis les documents https://github.com/eternnoir/pyTelegramBotAPI #proxy

Faites comme ça:

import telebot
from telebot import apihelper

bot = telebot.TeleBot(config.telebot_token)
apihelper.proxy = {'https', 'socks5://login:pass@12.11.22.33:8000'}

Et obtenu exception:

Connected to pydev debugger (build 172.3757.67)
Traceback (most recent call last):
  File "/Applications/PyCharm.app/Contents/helpers/pydev/pydevd.py", line 1596, in <module>
    globals = debugger.run(setup['file'], None, None, is_module)
  File "/Applications/PyCharm.app/Contents/helpers/pydev/pydevd.py", line 1023, in run
    pydev_imports.execfile(file, globals, locals)  # execute the script
  File "/Applications/PyCharm.app/Contents/helpers/pydev/_pydev_imps/_pydev_execfile.py", line 18, in execfile
    exec(compile(contents+"\n", file, 'exec'), glob, loc)
  File "/Users/Stas/PycharmProjects/newsbot/parser.py", line 658, in <module>
    RssProcess('rsslinks.txt')
  File "/Users/Stas/PycharmProjects/newsbot/parser.py", line 511, in __init__
    telegrambot.bot.send_message(config.telebot_id, 'RssProcess Started...')
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/telebot/__init__.py", line 439, in send_message
    reply_markup, parse_mode, disable_notification))
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/telebot/apihelper.py", line 135, in send_message
    return _make_request(token, method_url, params=payload, method='post')
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/telebot/apihelper.py", line 54, in _make_request
    timeout=(connect_timeout, read_timeout), proxies=proxy)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/requests/sessions.py", line 499, in request
    prep.url, proxies, stream, verify, cert
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/requests/sessions.py", line 671, in merge_environment_settings
    no_proxy = proxies.get('no_proxy') if proxies is not None else None
AttributeError: 'set' object has no attribute 'get'

J'essaie de lire ce qui ne va pas et j'ai trouvé un tel code:

if self.trust_env:
    # Set environment's proxies.
    no_proxy = proxies.get('no_proxy') if proxies is not None else None
    env_proxies = get_environ_proxies(url, no_proxy=no_proxy)
    for (k, v) in env_proxies.items():
        proxies.setdefault(k, v)

    # Look for requests environment configuration and be compatible
    # with cURL.
    if verify is True or verify is None:
        verify = (os.environ.get('REQUESTS_CA_BUNDLE') or
                  os.environ.get('CURL_CA_BUNDLE'))

Problème principal en ligne

no_proxy = proxies.get('no_proxy')

J'utilise PyCharm, avec installé

PySocks 1.6.8 et demandes 2.18.4

Comment se connecter via Proxy au télégramme avec mon proxy? De plus, ce proxy fonctionne bien sur mon téléphone et mon PC.

0
Gudsaf 16 avril 2018 à 17:08

3 réponses

Meilleure réponse

Même problème ici. Je dois également utiliser http et https et ce code fonctionne pour moi:

import telebot
from telebot import apihelper

bot = telebot.TeleBot(config.telebot_token)
apihelper.proxy = {
  'http', 'socks5://login:pass@12.11.22.33:8000',
  'https', 'socks5://login:pass@12.11.22.33:8000'
}
1
ahajib 16 avril 2018 à 15:48

Il semble que le problème se trouve dans le dictionnaire que vous attribuez à la variable proxy.

apihelper.proxy = {'https': 'socks5://login:pass@12.11.22.33:8000'}

A travaillé pour moi. J'espère que cela t'aides.

0
megure 18 avril 2018 à 21:54
pip3 uninstall requests
pip3 uninstall requests==2.10.0
#socks5 Tor (no login, no pass)
apihelper.proxy = {'https':'socks5://127.0.0.1:9150'}
#or soks5
apihelper.proxy = {'https':'socks5://login:pass@orbtl.s5.opennetwork.cc:port'}

apihelper.proxy = {'https':'socks5://14611055481:U777Vluhz8@orbtl.s5.opennetwork.cc:999'}<br>

D'accord!

-1
vekerdyb 14 juil. 2019 à 15:24