Как я могу решить ошибку аутентификации в discord.py

#python #discord.py

#python #discord.py

Вопрос:

Я создаю discord bot с помощью discord.py . Но когда я включил бота, он выдает ошибку discord.errors.Закрытое соединение: соединение с WebSocket закрыто: code = 4004 (для частного использования), причина = ошибка аутентификации. Есть ли какой-либо способ решить эту проблему?

Я уже пытался генерировать новые токены или создавать новых ботов. И код, который я использую сейчас, был успешно запущен ранее. Когда я запускаю этот код на других компьютерах (у которых нет того же IP-адреса), и он работает правильно. Как я могу решить эту проблему?

 import asyncio
import discord

app = discord.Client()

def get_token(): # Get tokens from key.key
    global token # This part works properly
    f = open("Key.key", "r")
    token = str(f.readline())

@app.event
async def on_ready(): #Login Part
    print("Logining to : ")
    print(app.user.name)
    print(app.user.id)
    print("==========")
    game = discord.Game("Bot is working properly!")
    await app.change_presence(status=discord.Status.online, activity=game)



@app.event
async def on_message(message):
    if message.author.bot:
        return None
    if message.content == "!hello":
        await message.channel.send("hello?")

get_token()
app.run(token)
  

Это мой исходный код, а ниже — обратная трассировка

   File "d:CodeProjectdiscord_botKoi_Bot_DiscordMain.py", line 30, in <module>
    app.run(token)
  File "D:Pythonlibsite-packagesdiscordclient.py", line 598, in run
    return future.result()
  File "D:Pythonlibsite-packagesdiscordclient.py", line 579, in runner
    await self.start(*args, **kwargs)
  File "D:Pythonlibsite-packagesdiscordclient.py", line 543, in start
    await self.connect(reconnect=reconnect)
  File "D:Pythonlibsite-packagesdiscordclient.py", line 457, in connect
    await self._connect()
  File "D:Pythonlibsite-packagesdiscordclient.py", line 421, in _connect
    await self.ws.poll_event()
  File "D:Pythonlibsite-packagesdiscordgateway.py", line 476, in poll_event
    raise ConnectionClosed(exc, shard_id=self.shard_id) from exc
discord.errors.ConnectionClosed: WebSocket connection is closed: code = 4004 (private use), reason = Authentication failed.
  

Ответ №1:

Я бы рекомендовал использовать переменные среды, но если вы настаиваете на чтении из файла, попробуйте:

 def get_token(): # Get tokens from key.key
    with open("Key.key", "r") as f:
        return f.readline().strip()
...

app.run(get_token())
  

Вполне вероятно, что вы получаете символ новой строки из своего readline , поэтому strip он удалит это, но лучше использовать функцию, возвращающую ваш токен.

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

1. С удовольствием, если мой ответ решил вашу проблему, пожалуйста, отметьте его как решение, спасибо!

Ответ №2:

Обновите модуль discord с помощью «python -m pip install -U discord.py » это решение