Discord.py 使用 Heroku 时机器人命令不响应

Discord.py bot commands don't respond when using Heroku

我有一个预制代码 Discord.py 并使用 Heroku 托管,它目前在线,除了每当我使用命令时,它 returns 什么都没有,但是当 运行 它在本地使用 Notepad++ 命令工作正常。

main.py

import discord
from discord.ext import commands
token = 'OBVIOUSLY THE TOKEN IS HERE'
prefix = "?"
intents = discord.Intents.default() # or .all() if you ticked all, that is easier
intents.members = True # If you ticked the SERVER MEMBERS INTENT

bot = commands.Bot(command_prefix=prefix, intents=intents) # "Import" the intents
@bot.event
async def on_ready():
    print('Internal has connected to Discord!')
    await bot.change_presence(activity=discord.Game(name="Discord"))
    
@bot.command()
async def ping(ctx):
    await ctx.send(f'Pong! In {round(bot.latency * 1000)}ms')

@bot.command()
async def about(ctx):
    embed = discord.Embed(title='About me!', description=f'Im an Utility bot, that is coded under discord.py\n\n> Statistics\nLatency: `{round(bot.latency * 1000)}`ms', color=0xEE8700)
    await ctx.send(embed=embed)

@bot.command()
async def say(ctx, *, content:str):
    await ctx.send(content)

bot.run(token)

版本: python= 3.8.8 discord.py= 1.7.3

(添加这个作为答案,因为我认为其他人也会有这个问题)

在discord.py 1.7.3 版中,查看消息内容所需的消息意图默认设置为启用。但是在2.x中需要单独设置。

您可以通过以下方式解决问题:

  1. 强制 discord.py 版本在 requirements.txt 中返回到 1.7.3;或
  2. 通过 intents.message_content = True.
  3. 显式启用意图