TypeError: ожидаемый токен будет строкой, вместо этого получен Python

Программы на Python
Anonymous
TypeError: ожидаемый токен будет строкой, вместо этого получен

Сообщение Anonymous »

Я хочу создать простого бота для Discord. То, что он делает, не так уж важно, кроме того факта, что я хочу, чтобы он отправлял сообщения в определенное время. Код ниже очень простой и не является законченным продуктом.

Код: Выделить всё

# bot.py
import os

import discord
from dotenv import load_dotenv

intents = discord.Intents().all()
intents.messages = True

load_dotenv()
TOKEN = os.getenv("FAKETOKENBLAHBLAHBLAH")

client = discord.Client(command_prefix=',', intents=discord.Intents().all())

@client.event
async def on_ready():
print(f'{client.user} has connected to Discord!')

client.run(TOKEN)
Я делаю что-то не так? Если да, пожалуйста, скажите мне. Я уже несколько часов в тупике, и все, что у меня есть для справки, это эта ошибка:

Код: Выделить всё

TypeError: expected token to be a str, received  instead
Я понимаю другие ссылки на модули и номера строк в обратной трассировке, но просто не могу понять, где что-то идет не так, потому что я не писал модуль discord.py.< /p>
Я прочитал много статей об этом, но ни одна из них не работает. В первой статье, которую я прочитал, мне предлагалось оставить параметры «discord.Client()» полностью пустыми, что привело к этой ошибке:

Код: Выделить всё

TypeError: Client.__init__() missing 1 required keyword-only argument: 'intents'
Это было по ссылке: https://realpython.com/how-to-make-a-di ... rd-account
Я не понимаю, но я точно знаю, что самая большая проблема связана с параметрами discord.Client() и чем-то связанным с намерениями.
Я чувствую, что мне также следует прикрепить свой код .env:

Код: Выделить всё

#.env
DISCORD_TOKEN={FAKETOKENBLAHBLAHBLAH}
ОБНОВЛЕНИЕ:
Я исправил этот код:

Код: Выделить всё

TOKEN = os.getenv("DISCORD_TOKEN")
Однако теперь это дает мне исключение:

Код: Выделить всё

[2022-08-22 01:20:03] [INFO    ] discord.client: logging in using static token
Traceback (most recent call last):
File "C:\Users\domin\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\http.py", line 801, in static_login
data = await self.request(Route('GET', '/users/@me'))
File "C:\Users\domin\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\http.py", line 744, in request
raise HTTPException(response, data)
discord.errors.HTTPException: 401 Unauthorized (error code: 0): 401: Unauthorized

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

Traceback (most recent call last):
File "C:\Users\domin\AppData\Local\Programs\Python\Python310\Projects\Discord Bot Text Game\bot.py", line 19, in 
client.run(TOKEN)
File "C:\Users\domin\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\client.py", line 828, in run
asyncio.run(runner())
File "C:\Users\domin\AppData\Local\Programs\Python\Python310\lib\asyncio\runners.py", line 44, in run
return loop.run_until_complete(main)
File "C:\Users\domin\AppData\Local\Programs\Python\Python310\lib\asyncio\base_events.py", line 646, in run_until_complete
return future.result()
File "C:\Users\domin\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\client.py", line 817, in runner
await self.start(token, reconnect=reconnect)
File "C:\Users\domin\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\client.py", line 745, in start
await self.login(token)
File "C:\Users\domin\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\client.py", line 580, in login
data = await self.http.static_login(token)
File "C:\Users\domin\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\http.py", line 805, in static_login
raise LoginFailure('Improper token has been passed.') from exc
discord.errors.LoginFailure: Improper token has been passed.
Как мне это исправить? Нужно ли мне создавать новый токен?

Подробнее здесь: https://stackoverflow.com/questions/734 ... pe-instead

Вернуться в «Python»