Discord bot发送DM用户失败的原因

所以我写了一个机器人 . 那很有效 . 我没有使用现有的库,我使用API文档组装了自己的库 .

我自己成功了DM:

// representative code - real thing uses higher-level functions like Discord::createDM()
// but for "MCVE" reasons this is just to show the API calls being made.
$dm = Discord::api("POST", "/users/@me/channels",
    ["recipient_id"=>Discord::KNOWN_USERS['Niet']]
);
Discord::api("POST", "/channels/".$dm->id."/messages",
    ["content"=>"Hello World!"]
);

工作得很好 . 但是,我试图让它成为别人的DM,并收到403 Forbidden错误消息“50007无法向此用户发送消息”

我希望机器人能够成为DM公会成员,要么响应命令(而不是单独的 #bot-commands Channels ),要么回应自动审核(而不是公开称呼它们,哪种方式违背了删除违规邮件)

但是,如果机器人无法发送这些消息,那么这有点问题 .

无法向特定用户发送消息的可能原因是什么?我如何解决这些问题?

或者我应该放弃并只使用 #bot-messages Channels ?

回答(1)

2 years ago

这些用户很可能选择不接收DM . 您可以选择仅允许朋友将它们发送给您,然后选择加入/退出特定服务器上的用户能够DM您(点击我认为的服务器名称,然后隐私)

除了要求他们允许来自您的服务器的DM之外,您无能为力 .