不正确的令牌传递

slo*_*ng9 5 python token discord discord.py

我正在 youtube 上关注 python discord bot 的基本教程,我的代码在下面。它说一个不正确的令牌已被传递。在有人问之前,是的,我已经输入了机器人令牌而不是 ID 或秘密

import discord
from discord.ext.commands import Bot
from discord.ext import commands
import asyncio
import time

Client = discord.Client()
client = commands.Bot(command_prefix = "!")

@client.event
async def on_ready():
    print("Bot is ready!")

@client.event
async def on_message(message):
    if message.content == "cookie":
        await client.send_message(message.channel, ":cookie:")

client.run("token is here")
Run Code Online (Sandbox Code Playgroud)

Ely*_*ith 12

确保您从 Discord 开发站点的“Bot”页面中获取“Token”,而不是“General Information”页面中的“Secret”。

我遇到了同样的问题。通过使用 Discord 应用程序页面中的正确令牌解决了我的问题。我使用的是“一般信息”页面中的“秘密”(它为我在原始帖子中生成了错误),而不是“机器人”页面中的“令牌”。

编辑:正如 sheneb 在对此的评论中所说的那样,这个答案(可能)不会帮助 OP(因为现在的问题是“在有人问之前,是的,我已经输入了机器人令牌而不是 id 或秘密”)。但是,我在搜索答案时发现了这个问题/页面,我的问题已通过此信息解决。我很高兴它对你有帮助,gouravkr,我希望它可以帮助其他访问者。

  • 总的来说,我犯了这个错误并在这里找到了解决方案。 (3认同)

小智 10

对我来说,我的 bot.py 文件如下所示:

import os
import discord
from dotenv import load_dotenv

load_dotenv()
TOKEN = os.getenv('DISCORD_TOKEN')
client = discord.Client()

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

client.run(TOKEN)
Run Code Online (Sandbox Code Playgroud)

由于我使用了 env(environment) 模块,因此我在文件夹的同一路径中创建了一个名称为空且扩展名为 .env 的新文件,并且 env 文件只有以下代码行:

DISCORD_TOKEN=DFHKJAhka7fdsKHJASDFk1jhaf5afd.HASDFafd23FHdfa_adfahHJKADF32W
Run Code Online (Sandbox Code Playgroud)

所以对我来说问题是我在令牌代码周围使用了括号,在我删除它之后,它起作用了!

我的代码有括号时:

DISCORD_TOKEN={DFHKJAhka7fdsKHJASDFk1jhaf5afd.HASDFafd23FHdfa_adfahHJKADF32W}
Run Code Online (Sandbox Code Playgroud)

我希望这个对你有用!

和平


小智 4

同样的事情也发生在我身上,但是当我进入开发者页面并刷新令牌时它开始工作。然后我只需将新令牌放入代码中就可以了!

也许同样对你有用......?