我想制作一个发送抓取消息的不和谐机器人。 我希望它发送消息,但它给了我一个错误:
<块引用>throw new DiscordAPIError(request.path, data, request.method, res.status); DiscordAPIError:无法发送空消息
我尝试使用 message.channel.send();但它似乎不起作用。 代码:
let data = await page.evaluate(() => {
let Name = document.querySelector('div[id="title"]').innerText;
let Description = document.querySelector('div[id="content"]').innerText;
return {
Name,
Description
}
});
console.log(data);
message.channel.send(data);
debugger;
await browser.close();
答案 0 :(得分:0)
问题是你不应该直接发送字典。虽然 message.channel.send
只接受 StringResolvable
或 APIMessage
,但 data
作为字典两者都不是。有关详细信息,请参阅 documentation。
相反,您可以先将 data
转换为字符串。以下是其中一种解决方案。
// Convert using JSON.stringify
message.channel.send(JSON.stringify(data));
完整代码示例(我在 https://example.com 上尝试过,因此有不同的查询):
let data = await page.evaluate(() => {
let Name = document.querySelector('h1').innerText;
let Description = document.querySelector('p').innerText;
return {
Name,
Description
}
});
console.log(data);
message.channel.send(JSON.stringify(data));
机器人发送的消息,没有抛出错误:
{"Name":"Example Domain","Description":"This domain is for use in illustrative examples in documents. You may use this domain in literature without prior coordination or asking for permission."}
如果您希望得到不同的消息,只需确保您传递给 message.channel.send
的参数是可接受的,否则可能会引发错误。