问题描述
我为 discord 制作了一个机器人,当我在本地启动它时它运行良好.我在 heroku 上构建它,它似乎也可以正常工作(感谢 Tristo).但在日志中我收到以下消息:
I made a bot for discord and it works fine when I launch it in local. I build it on heroku and It's seems to work fine too (thanks to Tristo). But in the log I get the following message :
2019-01-01T23:06:50.131982+00:00 app[worker.1]: Ignoring exception in on_message 2019-01-01T23:06:50.132550+00:00 app[worker.1]: Traceback (most recent call last): 2019-01-01T23:06:50.132589+00:00 app[worker.1]: File "/app/.heroku/python/lib/python3.6/site-packages/discord/client.py", line 227, in _run_event 2019-01-01T23:06:50.132590+00:00 app[worker.1]: await coro(*args, **kwargs) 2019-01-01T23:06:50.132593+00:00 app[worker.1]: File "run.py", line 14, in on_message 2019-01-01T23:06:50.132594+00:00 app[worker.1]: await client.send_message(message.channel, newMessage) 2019-01-01T23:06:50.132616+00:00 app[worker.1]: AttributeError: 'Bot' object has no attribute 'send_message'
我的程序是:
from discord.ext.commands import Bot import os BOT_PREFIX = ("?") access_token= os.environ["ACCESS_TOKEN"] client = Bot(command_prefix=BOT_PREFIX) @client.event async def on_message(message): if message.content.startswith("?"): newMessage = 'text' + str(message.content)[1:].upper() + '.png' await client.send_message(message.channel, newMessage) client.run(access_token)
我的 requirements.txt 仅包含git+https://github.com/Rapptz/discord.py@rewrite#egg=discord.py[语音]"
My requirements.txt includes only "git+https://github.com/Rapptz/discord.py@rewrite#egg=discord.py[voice]"
我尝试使用send"而不是send_message"(类似帖子中的答案),但没有任何变化.
I tried to use "send" instead of "send_message" (the answer in a similar post) but nothing changes.
尽管属性消息错误,我的机器人似乎仍然可以工作.你能帮我理解发生了什么吗?
My bot seems to work despite the attribute message error. Could you help me to understand what happened, please ?
推荐答案
你已经安装了 的 discord.py 的 rewrite 分支.io/en/rewrite/migrating.html#sending-messages" rel="nofollow noreferrer">以不同的方式发送消息
You've installed the rewrite branch of discord.py that does sending messages in a different way
# before await client.send_message(channel, 'Hello') # after await channel.send('Hello')