python - 如何使用 discord.py 消除 DM 中的反应
问题描述
我想从我的机器人发送的私人消息中删除反应。当我尝试这个时:
embed = discord.Embed(title="Choose the word difficulty.",description="**1.** Easy\n**2.** Medium\n**3.** Hard\n**4.** Ridiculous",color=0x7a17bb)
msg = await client.send_message(MAYOR_TAKEN[0],embed=embed)
await client.add_reaction(message=msg,emoji='\u0031\u20E3')
await client.add_reaction(message=msg,emoji='\u0032\u20E3')
await client.add_reaction(message=msg,emoji='\u0033\u20E3')
await client.add_reaction(message=msg,emoji='\u0034\u20E3')
while True:
react = await client.wait_for_reaction(emoji=None,message=msg,check=check)
if react.reaction.emoji == '\u0031\u20E3':
await client.delete_message(message=msg)
await choosewords(1)
elif react.reaction.emoji == '\u0032\u20E3':
await client.delete_message(message=msg)
await choosewords(2)
elif react.reaction.emoji == '\u0033\u20E3':
await client.delete_message(message=msg)
await choosewords(3)
elif react.reaction.emoji == '\u0034\u20E3':
await client.delete_message(message=msg)
await choosewords(4)
else:
await client.remove_reaction(message=msg,emoji=react.reaction.emoji,member=react.user)
我得到 FORBIDDEN (status code: 403): Cannot execute action on a DM channel from await client.remove_reaction(message=msg,emoji=react.reaction.emoji,member=react.user)
。我怎样才能消除这种反应?
编辑:
Traceback (most recent call last)
File "C:\Users\samue\AppData\Local\Programs\Python\Python36\lib\site-packages\discord\ext\commands\core.py", line 50, in wrapped
ret = yield from coro(*args, **kwargs)
File "Spacebotv2.py", line 466, in Werewords
await choosedifficulty(MAYOR_TAKEN)
File "Spacebotv2.py", line 443, in choosedifficulty
await client.remove_reaction(message=msg,emoji=react.reaction.emoji,member=react.user)
File "C:\Users\samue\AppData\Local\Programs\Python\Python36\lib\site-packages\discord\client.py", line 1002, in remove_reaction
yield from self.http.remove_reaction(message.id, message.channel.id, emoji, member_id)
File "C:\Users\samue\AppData\Local\Programs\Python\Python36\lib\site-packages\discord\http.py", line 196, in request
raise Forbidden(r, data)
discord.errors.Forbidden: FORBIDDEN (status code: 403): Cannot execute action on a DM channel
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "C:\Users\samue\AppData\Local\Programs\Python\Python36\lib\site-packages\discord\ext\commands\bot.py", line 846, in process_commands
yield from command.invoke(ctx)
File "C:\Users\samue\AppData\Local\Programs\Python\Python36\lib\site-packages\discord\ext\commands\core.py", line 374, in invoke
yield from injected(*ctx.args, **ctx.kwargs)
File "C:\Users\samue\AppData\Local\Programs\Python\Python36\lib\site-packages\discord\ext\commands\core.py", line 54, in wrapped
raise CommandInvokeError(e) from e
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: Forbidden: FORBIDDEN (status code: 403): Cannot execute action on a DM channel
解决方案
推荐阅读
- php - 如何使用php将邮件发送到数据库中的多个电子邮件列表
- python - BeautifulSoup 与表
- c - 结构体的全局数组,在程序中声明大小并在不通过的情况下全局使用?
- typescript - 通过向 PromiseLike 添加异常来修改 es6 Promise 类型
- sql - SQL 中的多态关联
- javascript - Javascript 仅适用于 iframe 重新加载
- java - 使用 TYPE 仅选择具有 Inheritance.table_per_class 状态的特定类
- javascript - 将 Google 表格(应用程序脚本)转换为有效的 CSV 格式
- node.js - IBM DevOps Delivery Pipeline 上的当前节点版本在下一阶段丢失
- websocket - 使用 play framework 2.6 创建 websocket