查找和删除 Discord webhook 消息

Posted

技术标签:

【中文标题】查找和删除 Discord webhook 消息【英文标题】:Find and delete Discord webhook message 【发布时间】:2021-07-15 00:18:51 【问题描述】:

我正在使用 Discord webhook 发送信息,这些信息以后可能会失效,因此我希望能够将其删除。为此,我使用这些端点:

首先我发出一个帖子请求以发送消息:

POST /webhooks/webhook.id/webhook.token

然后我想做一个删除请求以再次删除该消息:

DELETE /webhooks/webhook.id/webhook.token/messages/message.id

但是我没有要删除的消息的 ID,因为第一个 POST 请求没有响应,它始终是一个空的 204 响应。是否可以获取消息id?

任何帮助将不胜感激。

【问题讨论】:

获取不和谐消息的获取请求应该可以工作,但它需要授权的用户/机器人成员令牌。您可以获取消息吗? @TKperson 不,正如你所说,获取消息需要额外的授权并增加一个全新的复杂层,我只对使用简单的请求感兴趣。不过谢谢你的回复。 【参考方案1】:

每this reddit post:

如果您需要引用您发送的 webhook 消息的消息 ID,您可以将 ?wait=true 添加到 URL 的末尾,这将为您提供消息数据(包括 ID)而不是 204(无内容) 当您不包含查询参数时。

因此,如果您将正常的 POST 请求发送到您的网址,如下所示:POST /webhooks/webhook.id/webhook.token,请在末尾添加 ?wait=true。然后你会得到这样的数据:


    "id": "MESSAGEID",
    "type": 0,
    "content": "This is a test",
    "channel_id": "CHANNELID",
    "author": 
        "bot": true,
        "id": "AUTHORID",
        "username": "USERNAME",
        "avatar": "AVATARID",
        "discriminator": "0000"
    ,
    "attachments": [],
    "embeds": [],
    "mentions": [],
    "mention_roles": [],
    "pinned": false,
    "mention_everyone": false,
    "tts": false,
    "timestamp": "2021-11-13T18:10:24.412000+00:00",
    "edited_timestamp": null,
    "flags": 0,
    "components": [],
    "webhook_id": "WEBHOOKID"

【讨论】:

以上是关于查找和删除 Discord webhook 消息的主要内容,如果未能解决你的问题,请参考以下文章

如何在基于 webhook 和角色的 JS 中修复复杂的 Discord 命令

Discord.js:检测来自 Webhook 的消息

discord.py,使用 webhook 在所有通道中发送消息

c# - 添加附件到 Discord Webhook 消息

来自 Java 的 Discord Webhook 消息中的表情符号和特殊字符不起作用

发送从 webhook 收到的消息的 Discord 机器人