我可以使用 Discord API 在消息请求中保存信息吗?
Can I save information in message requests with Discord API?
我试过这样发送消息
client.api.channels(msg.channel.id).messages.post({
data: {
content: 'content',
test: 'test'
}
})
我希望因为它是一个 API post 请求,它会保存 test
属性.
const msgs = await client.api.channels(msg.channel.id).messages.get();
msg.channel.send(msgs[1].test) //error: cannot send an empty message
将 .test
更改为 .content
会 发送 bot 最初发送的消息内容,但 .test
输出未定义。也许我需要使用 node-fetch
或 https
以便它 post 直接获取?
您正在通过 post 请求将 test
属性 发送到 Discord API,但这并不意味着 Discord API 将存储属性 到它的数据库。它只关心它知道的数据,其余的都被丢弃。列出了有关一条消息的所有 Discord 存储属性 here。
Discord API 不允许您在消息对象中存储任意数据。
当然你可以寻找解决方法,比如将数据存储在嵌入的颜色(如果它们足够短)或图像中,等等。我不认为这是一个很好的解决这个问题的方法,但取决于你想要完成什么。
您可以自己存储自定义数据。创建某种中间件,它将向 Discord API 发送消息,检索新创建消息的消息对象。并将其 id 与您的自定义数据相关联并将其存储在某个地方(例如您的数据库、JSON 文件等)
稍后您可以使用消息的 ID 访问您的自定义数据。
我试过这样发送消息
client.api.channels(msg.channel.id).messages.post({
data: {
content: 'content',
test: 'test'
}
})
我希望因为它是一个 API post 请求,它会保存 test
属性.
const msgs = await client.api.channels(msg.channel.id).messages.get();
msg.channel.send(msgs[1].test) //error: cannot send an empty message
将 .test
更改为 .content
会 发送 bot 最初发送的消息内容,但 .test
输出未定义。也许我需要使用 node-fetch
或 https
以便它 post 直接获取?
您正在通过 post 请求将 test
属性 发送到 Discord API,但这并不意味着 Discord API 将存储属性 到它的数据库。它只关心它知道的数据,其余的都被丢弃。列出了有关一条消息的所有 Discord 存储属性 here。
Discord API 不允许您在消息对象中存储任意数据。
当然你可以寻找解决方法,比如将数据存储在嵌入的颜色(如果它们足够短)或图像中,等等。我不认为这是一个很好的解决这个问题的方法,但取决于你想要完成什么。
您可以自己存储自定义数据。创建某种中间件,它将向 Discord API 发送消息,检索新创建消息的消息对象。并将其 id 与您的自定义数据相关联并将其存储在某个地方(例如您的数据库、JSON 文件等)
稍后您可以使用消息的 ID 访问您的自定义数据。