@maxim_tlgrm

При запуске элементарного кода(правильного) на vkbottle выдает огромное количество ошибок. Что делать?

запускаю простой код на библиотеке vkbottle а выдает огромное количество ошибок.

Ниже прикреплю мой код и ошибки

from vkbottle.bot import Bot, Message

bot = Bot(token='') #тут я вставляю свой токен вк сообщества

@bot.on.private_message(text='start')
async def test_handler(message: Message):
    await message.answer('привет')

bot.run_forever()


vkbottle у меня установлен в venv'e в PyCharm

после запуска кода выдает

это
INFO     | 2023-08-19 14:42:47 | vkbottle.framework.bot.bot:run_forever:90 > Loop will be ran forever
INFO     | 2023-08-19 14:42:47 | vkbottle.framework.bot.bot:run_polling:79 > Starting polling for <API token_generator=<<class 'vkbottle.api.token_generator.single.SingleTokenGenerator'>>...>
DEBUG    | 2023-08-19 14:42:47 | vkbottle.polling.bot_polling:get_server:49 > Getting polling server...
DEBUG    | 2023-08-19 14:42:47 | vkbottle.api.api:validate_request:112 > API request was validated
Task exception was never retrieved
future: <Task finished name='Task-1' coro=<Bot.run_polling() done, defined at /Users/maks/PycharmProjects/vkbottle test/venv/lib/python3.11/site-packages/vkbottle/framework/bot/bot.py:77> exception=ClientConnectorCertificateError(ConnectionKey(host='api.vk.com', port=443, is_ssl=True, ssl=None, proxy=None, proxy_auth=None, proxy_headers_hash=None), SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1002)'))>
Traceback (most recent call last):
  File "/Users/maks/PycharmProjects/vkbottle test/venv/lib/python3.11/site-packages/aiohttp/connector.py", line 980, in _wrap_create_connection
    return await self._loop.create_connection(*args, **kwargs)  # type: ignore[return-value]  # noqa
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/asyncio/base_events.py", line 1112, in create_connection
    transport, protocol = await self._create_connection_transport(
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/asyncio/base_events.py", line 1145, in _create_connection_transport
    await waiter
  File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/asyncio/sslproto.py", line 575, in _on_handshake_complete
    raise handshake_exc
  File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/asyncio/sslproto.py", line 557, in _do_handshake
    self._sslobj.do_handshake()
  File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/ssl.py", line 979, in do_handshake
    self._sslobj.do_handshake()
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1002)

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/Users/maks/PycharmProjects/vkbottle test/venv/lib/python3.11/site-packages/vkbottle/framework/bot/bot.py", line 81, in run_polling
    async for event in polling.listen():
  File "/Users/maks/PycharmProjects/vkbottle test/venv/lib/python3.11/site-packages/vkbottle/polling/bot_polling.py", line 57, in listen
    server = await self.get_server()
             ^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/maks/PycharmProjects/vkbottle test/venv/lib/python3.11/site-packages/vkbottle/polling/bot_polling.py", line 51, in get_server
    self.group_id = (await self.api.request("groups.getById", {}))["response"][0]["id"]
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/maks/PycharmProjects/vkbottle test/venv/lib/python3.11/site-packages/vkbottle/api/api.py", line 72, in request
    response = await self.http_client.request_text(
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/maks/PycharmProjects/vkbottle test/venv/lib/python3.11/site-packages/vkbottle/http/aiohttp.py", line 73, in request_text
    response = await self.request_raw(url, method, data, **kwargs)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/maks/PycharmProjects/vkbottle test/venv/lib/python3.11/site-packages/vkbottle/http/aiohttp.py", line 50, in request_raw
    async with self.session.request(url=url, method=method, data=data, **kwargs) as response:
  File "/Users/maks/PycharmProjects/vkbottle test/venv/lib/python3.11/site-packages/aiohttp/client.py", line 1141, in __aenter__
    self._resp = await self._coro
                 ^^^^^^^^^^^^^^^^
  File "/Users/maks/PycharmProjects/vkbottle test/venv/lib/python3.11/site-packages/aiohttp/client.py", line 536, in _request
    conn = await self._connector.connect(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/maks/PycharmProjects/vkbottle test/venv/lib/python3.11/site-packages/aiohttp/connector.py", line 540, in connect
    proto = await self._create_connection(req, traces, timeout)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/maks/PycharmProjects/vkbottle test/venv/lib/python3.11/site-packages/aiohttp/connector.py", line 901, in _create_connection
    _, proto = await self._create_direct_connection(req, traces, timeout)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/maks/PycharmProjects/vkbottle test/venv/lib/python3.11/site-packages/aiohttp/connector.py", line 1209, in _create_direct_connection
    raise last_exc
  File "/Users/maks/PycharmProjects/vkbottle test/venv/lib/python3.11/site-packages/aiohttp/connector.py", line 1178, in _create_direct_connection
    transp, proto = await self._wrap_create_connection(
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/maks/PycharmProjects/vkbottle test/venv/lib/python3.11/site-packages/aiohttp/connector.py", line 982, in _wrap_create_connection
    raise ClientConnectorCertificateError(req.connection_key, exc) from exc
aiohttp.client_exceptions.ClientConnectorCertificateError: Cannot connect to host api.vk.com:443 ssl:True [SSLCertVerificationError: (1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1002)')]
INFO     | 2023-08-19 14:43:15 | vkbottle.tools.dev.loop_wrapper:run_forever:52 > Keyboard Interrupt

Process finished with exit code 0
  • Вопрос задан
  • 1271 просмотр
Пригласить эксперта
Ответы на вопрос 3
@Ni9ght
Студент, пишу в основном на MySQL, Python, C++
"SSL: CERTIFICATE_VERIFY_FAILED" - бот пытается связаться с вк, но видит у него неизвестный сертификат. Нужно вручную загрузить этот сертификат в доверенные:
1. На сайте вк нажать на замок (рядом с url) --> найти действительный сертификат --> во вкладке дополнительно экспортировать его в формате ".crt"
2. Oткрыть "MMC" через пуск. Далее файл --> добавить оснастку --> сертификаты --> добавить --> моей учётной (затем также добавить для локального пк) --> откройте через корень консоли сертификаты - локальный пк --> действие --> все задачи --> далее и обзор --> найдите скачанный в п.1 сертификат --> готово!
Ответ написан
xzripper
@xzripper
0xC0000005
В CMD:
pip uninstall vkbottle && pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org vkbottle


И убедитесь что токен правильный
Ответ написан
Vindicar
@Vindicar
RTFM!
aiohttp.client_exceptions.ClientConnectorCertificateError: Cannot connect to host api.vk.com:443 ssl:True [SSLCertVerificationError: (1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1002)')]

У тебя или провайдер сильно хитропопый, или вирусня на компе. Самоподписанных сертификатов в цепочке сертификатов для любого нормального сайта быть не должно и точка, а для контакта тем более. Так что кто-то пытается перехватить соединение. Кто - без понятия. Проверь на заведомо чистой машине и работая через VPN, также проверь список установленных корневых сертификатов, нет ли там чего странного. Как - написано в гугле.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы