由 bot 制作的 webhook url 不可复制

Posted

技术标签:

【中文标题】由 bot 制作的 webhook url 不可复制【英文标题】:webhook url is not copyable which is made by bot 【发布时间】:2021-10-17 04:45:27 【问题描述】:

问题

我无法从不和谐客户端复制 webhook URL,这是由 bot 制作的。 Copy Webhook URL 按钮被禁用。

我想知道的

如何使机器人制作的Copy Webhook URL按钮不被禁用 bot生成的webhook URL不可复制的原因

发生了什么

我通过以下代码使用 discord.js 制作了一个 webhook:

const target: TextChannel = client.channels.cache.get('CHANNEL_ID') as TextChannel;
const result = await target.createWebhook('webhook made by bot')

并且 webhook 已正确创建,但我无法从 discord 客户端复制 URL。 准确地说,我无法点击Copy Webhook URL 按钮。它已禁用。

当然,我可以从 createWebhook 的结果中获取 URL,或者通过获取 webhook 信息,但我想让使用不和谐客户端的人轻松复制 webhook URL。

我检查了什么

我试图查看 webhook 的信息,以了解人类和机器人制作的 webhook 之间的区别:

这是人为的信息

'webhook made by my hand' => Webhook 
  name: 'Spidey Bot',
  avatar: null,
  id: 'id',
  type: 'Incoming',
  guildID: 'guildid',
  channelID: 'channelid',
  owner: undefined

这是来自机器人

'webhook made by bot' => Webhook 
  name: 'webhook made by bot',
  avatar: null,
  id: 'id',
  type: 'Incoming',
  guildID: 'guildid',
  channelID: 'channelid',
  owner: ClientUser 
    id: 'id_of_bot',
    system: null,
    locale: null,
    flags: null,
    username: 'botbotbot',
    bot: true,
    discriminator: 'XXXX',
    avatar: null,
    lastMessageID: null,
    lastMessageChannelID: null,
    verified: true,
    mfaEnabled: false,
    _typing: Map(0) 
  

看起来有标志bot来识别webhook是由机器人还是其他人制作的。 我可以通过编辑这个选项来解决这个问题吗? 可以改吗?

【问题讨论】:

【参考方案1】:

如何使机器人制作的Copy Webhook URL按钮不被禁用

据我所知,这不可能。在阅读了Discord Developer portal 之后,除了nameavatarchannel_id 之外,Discord API 似乎不允许您对 webhook 进行重大更改。

您将无法通过您的机器人创建一个普通的 webhook(人造)而不被视为自我机器人,这当然是被禁止的。

bot制作的webhook的URL不可复制的原因

它是一种特殊类型的 webhook,应用程序拥有的 webhook,由应用程序(例如您的不和谐机器人)管理。此类 webhook 的目的不是供普通用户使用。

普通 webhook 和应用程序拥有的 webhook 之间的区别之一是应用程序拥有的 webhook 允许您发送 message components。因此,除非您以此为目标,否则您应该可以使用普通的 webhook。

如果您的目标是在多个公会中自动创建 webhook 作为您的机器人功能的一部分,并且应用程序拥有的 webhook 是绝对需要的(没有其他方法)。我会做一个命令,它将向您显示当前频道中的 webhook 列表及其 URL 供您的用户使用(当然还有权限检查和隐私等)。

【讨论】:

谢谢,我明白了!我会尝试获取channel-webhook列表的列表,并让用户检查它。

以上是关于由 bot 制作的 webhook url 不可复制的主要内容,如果未能解决你的问题,请参考以下文章

带有自签名证书的 Telegram bot webhook 不起作用

我对 webhook 的定义有疑问

Discord bot 忽略所有 webhook?

csharp Line Bot WebHook范例

连接到 Telegram Bot API 的 webhook 出现问题

Telegram Bot webhook 真的很慢