我正在创建一个discord.js机器人程序和一个快速API,它们可以一起工作以允许我的桌面应用程序(以电子方式创建)与服务器交互。我在桌面应用程序中添加了禁止管理标签,并且可以从那里取消禁止用户。之后,我尝试向未禁止的用户发送一条消息,让他们知道他们已被禁止,并向他们发出邀请。但是我得到了错误。 “ DiscordAPIError:无法向该用户发送消息”。我了解,如果用户不与漫游器共享服务器,则不可能向用户发送消息,是否可以解决?
// Unban user
// guild is the server that the bot is in and unbanning for
// note this is a private bot for only one server, so i don,t need multi-server handling
app.post(`/api/v1/unban/:id`, async (req, res) => {
let toUnBan = await bot.fetchUser(req.params.id);
let error = false;
if (!toUnBan) {
error = "Unexpected error occurred: User not found...";
}
// 585739079585497099 is the bot's id
if (!guild.members.get("585739079585497099").hasPermission("BAN_MEMBERS")) {
error = "Bot doesn't have permission to unban members.";
}
if (error === false) {
try {
guild.unban(toUnBan.id);
res.status(200).send({
success: true
});
// these lines are returning the error, workaround?
let invite = await guild.channels.find(c => c.name === "General").createInvite();
// goes with line above
bot.users.get(toUnBan.id).createDM().then(dm => {
dm.send(`Your ban on **${guild.name}** has been lifted. Here you can join again :), ${invite} .`);
});
} catch (e) {
if (e) console.log(e.message);
res.status(200).send({
success: false,
error: e.message
});
}
} else {
res.status(200).send({
success: false,
error: error
});
}
});
谢谢!
答案 0 :(得分:0)
由于Discord中的隐私设置,在某些情况下,客户端无法将消息发送给与其不是朋友并且不共享服务器的用户。因此,禁止具有严格隐私设置的用户可能导致以后无法与他们联系。