У меня есть и ошибка в моем боте Python Discord — ClientConnectorCertificateError

#python #python-3.x #discord #discord.py #aiohttp

#python #python-3.x #Discord #discord.py #aiohttp

Вопрос:

У меня ошибка при попытке запустить моего бота Python Discord.

Вот мой код:

 import discord

client = discord.Client()

@client.event
async def on_ready():
    print('We have logged in as {0.user}'.format(client))

@client.event
async def on_message(message):
    if message.author == client.user:
        return None

    if message.content.startswith('$hello'):
        await message.channel.send('Hello!')

client.run('<redacted>')
  

Когда я запускаю это, я получаю следующий код ошибки:

aiohttp.client_exceptions.ClientConnectorCertificateError: не удается подключиться к хосту discord.com: 443 ssl: True [SSLCertVerificationError: (1, ‘[SSL: CERTIFICATE_VERIFY_FAILED] проверка сертификата не удалась: срок действия сертификата истек (_ssl.c: 1123)’)]

Полная трассировка ошибок:

 Traceback (most recent call last):
  File "C:UsersshalevAppDataLocalProgramsPythonPython38libsite-packagesaiohttpconnector.py", line 936, in _wrap_create_connection
    return await self._loop.create_connection(*args, **kwargs)  # type: ignore  # noqa
  File "C:UsersshalevAppDataLocalProgramsPythonPython38libasynciobase_events.py", line 1050, in create_connection
    transport, protocol = await self._create_connection_transport(
  File "C:UsersshalevAppDataLocalProgramsPythonPython38libasynciobase_events.py", line 1080, in _create_connection_transport
    await waiter
  File "C:UsersshalevAppDataLocalProgramsPythonPython38libasynciosslproto.py", line 529, in data_received
    ssldata, appdata = self._sslpipe.feed_ssldata(data)
  File "C:UsersshalevAppDataLocalProgramsPythonPython38libasynciosslproto.py", line 189, in feed_ssldata
    self._sslobj.do_handshake()
  File "C:UsersshalevAppDataLocalProgramsPythonPython38libssl.py", line 944, in do_handshake
    self._sslobj.do_handshake()
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate has expired (_ssl.c:1123)
  

Приведенное выше исключение было прямой причиной следующего исключения:

 Traceback (most recent call last):
  File "C:UsersshalevAppDataLocalProgramsPythonPython38librunpy.py", line 194, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "C:UsersshalevAppDataLocalProgramsPythonPython38librunpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "c:Usersshalev.vscodeextensionsms-python.python-2020.9.111407pythonFileslibpythondebugpy__main__.py", line 45, in <module>
    cli.main()
  File "c:Usersshalev.vscodeextensionsms-python.python-2020.9.111407pythonFileslibpythondebugpy/..debugpyservercli.py", line 430, in main
    run()
  File "c:Usersshalev.vscodeextensionsms-python.python-2020.9.111407pythonFileslibpythondebugpy/..debugpyservercli.py", line 267, in run_file
    runpy.run_path(options.target, run_name=compat.force_str("__main__"))
  File "C:UsersshalevAppDataLocalProgramsPythonPython38librunpy.py", line 265, in run_path
    return _run_module_code(code, init_globals, run_name,
  File "C:UsersshalevAppDataLocalProgramsPythonPython38librunpy.py", line 97, in _run_module_code
    _run_code(code, mod_globals, init_globals,
  File "C:UsersshalevAppDataLocalProgramsPythonPython38librunpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "f:python projectsamong us bot.py", line 17, in <module>
    client.run('<redacted>')
  File "C:UsersshalevAppDataLocalProgramsPythonPython38libsite-packagesdiscordclient.py", line 678, in run
    return future.result()
  File "C:UsersshalevAppDataLocalProgramsPythonPython38libsite-packagesdiscordclient.py", line 658, in runner
    await self.start(*args, **kwargs)
  File "C:UsersshalevAppDataLocalProgramsPythonPython38libsite-packagesdiscordclient.py", line 621, in start
    await self.login(*args, bot=bot)
  File "C:UsersshalevAppDataLocalProgramsPythonPython38libsite-packagesdiscordclient.py", line 472, in login
    await self.http.static_login(token.strip(), bot=bot)
  File "C:UsersshalevAppDataLocalProgramsPythonPython38libsite-packagesdiscordhttp.py", line 288, in static_login
    data = await self.request(Route('GET', '/users/@me'))
  File "C:UsersshalevAppDataLocalProgramsPythonPython38libsite-packagesdiscordhttp.py", line 185, in request
    async with self.__session.request(method, url, **kwargs) as r:
  File "C:UsersshalevAppDataLocalProgramsPythonPython38libsite-packagesaiohttpclient.py", line 1012, in __aenter__
    self._resp = await self._coro
  File "C:UsersshalevAppDataLocalProgramsPythonPython38libsite-packagesaiohttpclient.py", line 480, in _request
    conn = await self._connector.connect(
  File "C:UsersshalevAppDataLocalProgramsPythonPython38libsite-packagesaiohttpconnector.py", line 523, in connect
    proto = await self._create_connection(req, traces, timeout)
  File "C:UsersshalevAppDataLocalProgramsPythonPython38libsite-packagesaiohttpconnector.py", line 858, in _create_connection
    _, proto = await self._create_direct_connection(
  File "C:UsersshalevAppDataLocalProgramsPythonPython38libsite-packagesaiohttpconnector.py", line 1004, in _create_direct_connection
    raise last_exc
  File "C:UsersshalevAppDataLocalProgramsPythonPython38libsite-packagesaiohttpconnector.py", line 980, in _create_direct_connection
    transp, proto = await self._wrap_create_connection(
  File "C:UsersshalevAppDataLocalProgramsPythonPython38libsite-packagesaiohttpconnector.py", line 938, in _wrap_create_connection
    raise ClientConnectorCertificateError(
aiohttp.client_exceptions.ClientConnectorCertificateError: Cannot connect to host discord.com:443 ssl:True [SSLCertVerificationError: (1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate has expired (_ssl.c:1123)')]
  

Как я могу решить эту проблему?

Комментарии:

1. Восстановите свой токен, вы опубликовали его публично

2. Ваш код работает отлично для меня, вы получаете сообщение об ошибке с истекшим сроком действия SSL-сертификата discord.com , можете ли вы перейти к discord.com в вашем браузере?

3. да, я могу перейти в discord.com

4. Являются ли ваши компьютерные часы (дата и время) точными?

5. Да, мои дата и время соответствуют моему региону

Ответ №1:

 import discord

client = discord.Client()

@client.event
async def on_ready():
    print('We have logged in as {0.user}'.format(client))

@client.event
async def on_message(message):

    if message.author == client.user:
        return 

    if message.content.startswith('$hello'):
        a=message.channel.id
        channel=client.get_channel(a)
        await channel.send('Hello!')

client.run('<redacted>')
  

Комментарии:

1. Чтобы улучшить ответ, вы также должны написать, что вы сделали в этом блоке кода для решения проблемы. Чего не хватало / неправильно в коде операции и как вы это исправили.