0
votes

trying to run a discord bot

this is the code

import discord
from discord.ext import commands

TOKEN: str = "Token"

client = commands.Bot(command_prefix = '.')

@client.event
async def on_ready():
    print('Connected')

client.start(TOKEN)

I get this error:

C:\Users\josep\AppData\Local\Programs\Python\Python38\python.exe C:/Users/josep/Desktop/unsettler/unsettler.py C:/Users/josep/Desktop/unsettler/unsettler.py:12: RuntimeWarning: coroutine 'Client.start' was never awaited client.start(TOKEN) RuntimeWarning: Enable tracemalloc to get the object allocation traceback

I tried using client.run instead of client.start, but it triggers more errors. How do I fix this?

edit: the errors I got from client run:

Traceback (most recent call last): File "C:\Users\josep\AppData\Local\Programs\Python\Python38\lib\site-packages\discord\http.py", line 291, in static_login data = await self.request(Route('GET', '/users/@me')) File "C:\Users\josep\AppData\Local\Programs\Python\Python38\lib\site-packages\discord\http.py", line 245, in request raise HTTPException(r, 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/josep/Desktop/unsettler/unsettler.py", line 12, in client.run(TOKEN) File "C:\Users\josep\AppData\Local\Programs\Python\Python38\lib\site-packages\discord\client.py", line 708, in run return future.result() File "C:\Users\josep\AppData\Local\Programs\Python\Python38\lib\site-packages\discord\client.py", line 687, in runner await self.start(*args, **kwargs) File "C:\Users\josep\AppData\Local\Programs\Python\Python38\lib\site-packages\discord\client.py", line 650, in start await self.login(*args, bot=bot) File "C:\Users\josep\AppData\Local\Programs\Python\Python38\lib\site-packages\discord\client.py", line 499, in login await self.http.static_login(token.strip(), bot=bot) File "C:\Users\josep\AppData\Local\Programs\Python\Python38\lib\site-packages\discord\http.py", line 295, in static_login raise LoginFailure('Improper token has been passed.') from exc discord.errors.LoginFailure: Improper token has been passed. Exception ignored in: <function _ProactorBasePipeTransport.del at 0x00000216FCD9FDC0> Traceback (most recent call last): File "C:\Users\josep\AppData\Local\Programs\Python\Python38\lib\asyncio\proactor_events.py", line 116, in del self.close() File "C:\Users\josep\AppData\Local\Programs\Python\Python38\lib\asyncio\proactor_events.py", line 108, in close self._loop.call_soon(self._call_connection_lost, None) File "C:\Users\josep\AppData\Local\Programs\Python\Python38\lib\asyncio\base_events.py", line 711, in call_soon self._check_closed() File "C:\Users\josep\AppData\Local\Programs\Python\Python38\lib\asyncio\base_events.py", line 504, in _check_closed raise RuntimeError('Event loop is closed') RuntimeError: Event loop is closed

1
Can you show what error messages you are getting from client.run? client.run and client.start are not equivalent functions, as client.start needs to be manually initialized into the event loop, whereas client.run abstracts that process and makes it simpler to use.thegamecracks

1 Answers

2
votes

According to the traceback for client.run, the RuntimeError at the bottom was derived from this exception:

LoginFailure('Improper token has been passed.')

Essentially, check that you copied the correct token into the TOKEN variable. When you go to the developer portal and click on your application, make sure that you copy the bot token (you will find it in the Bot tab on the left) and not the client secret or client ID.