#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 » это решение