【问题标题】:Discord.js send a webhookDiscord.js 发送一个 webhook
【发布时间】:2021-05-16 16:43:53
【问题描述】:

您好,我一直在尝试使用 webhook,我想知道您如何通过带有自定义头像和名称的 webhook 发送普通消息(未嵌入)


        const user = message.mentions.users.first() || client.users.cache.get(args[0]);
        let announcement = args.slice(1).join(" ");
        if(!announcement) return message.channel.send(`lol say something`)

        const wc = new WebhookClient('id', 'token')
        const embed = new MessageEmbed()
            .setTitle("").setColor('GREEN').setTimestamp().setDescription(announcement)
    wc.send({
        username : user.username,
        avatarURL : user.displayAvatarURL({ dynamic : true }),
        embeds : [embed]
    })
    
    }
    ```

【问题讨论】:

    标签: node.js discord discord.js


    【解决方案1】:

    如果您希望发送 Discord webhook,您需要向 webhook url 发出 POST API 请求。

    为此,您基本上可以使用任何您想要的模块,但在此示例中,我将使用node-fetch。只需将其安装在您的控制台中

    npm install node-fetch
    

    然后在需要的地方使用它

    const fetch = require('node-fetch');
    

    现在我们已经有了让它工作所需的东西,让我们创建 API 请求。

    为此,我们从 params 变量开始。在这里,您可以设置所有使 webhook 看起来像您想要的样子的东西。 注意:我还包括了如何发送嵌入以防万一。如果您想查看所有选项,请查看here

    var params = {
        username: "Your name",
        avatar_url: "",
        content: "Some message you want to send",
        embeds: [
            {
                "title": "Some title",
                "color": 15258703,
                "thumbnail": {
                    "url": "",
                },
                "fields": [
                    {
                        "name": "Your fields here",
                        "value": "Whatever you wish to send",
                        "inline": true
                    }
                ]
            }
        ]
    }
    

    现在我们有了参数,我们可以创建实际的 POST 请求。为此,您只需调用 fetch 函数并提供 webhook url。

    首先,您指定要使用的方法。默认情况下,方法是GET。接下来确保将标头设置为'Content-type': 'application/json',否则会出现错误。最后在正文中包含前面的params。我们在这里使用JSON.stringify() 使其工作。

    fetch('URL', {
        method: "POST",
        headers: {
            'Content-type': 'application/json'
        },
        body: JSON.stringify(params)
    }).then(res => {
        console.log(res);
    }) 
    

    最后,您可以选择捕获可能收到的任何错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-02-06
      • 2020-11-08
      • 2021-06-17
      • 2021-07-17
      • 2021-02-18
      • 2017-10-30
      • 2018-12-29
      相关资源
      最近更新 更多