【问题标题】:How can I make a bot that basically makes an embed of a linked site?如何制作一个基本上嵌入链接网站的机器人?
【发布时间】:2021-01-25 06:38:24
【问题描述】:

我已经制作了几个不和谐的机器人,但我还是个新手,我想知道如何制作一个嵌入任何网站的机器人(有点像 YouTube 如何嵌入视频但带有文本和一个嵌入中的网站的多模式元素)发布在机器人的前缀和命令“站点”之后。我不知道如何让机器人对刺激做出反应,我不确定嵌入将如何工作。我只是希望能够做到这一点,以便任何用户都可以输入不和谐=site *Enter URL here*,它会创建一个嵌入网站,这样人们就不会浏览链接。到目前为止,这是我的代码,它非常基本,但我不知道如何实现嵌入网站的能力。我知道 site 命令根本不起作用,但这些是我的尝试:

const Discord = require('discord.js');

const client = new Discord.Client();

const prefix = '=';

client.once('ready', () => {
    console.log('WebPress is now online!');
    client.user.setActivity('Microsoft Word 1996', { type: 'PLAYING' })
});


client.on('message', message => {
    if(!message.content.startsWith(prefix) || message.author.bot) return;

    const args = message.content.slice(prefix.length).split(/ +/)
    const command = args.shift().toLowerCase();


    if (command === 'ping'){
        message.channel.send('`Pong!`');
    } else if (command == 'site'){
        const siteEmbed = new Discord.MessageEmbed()
            .setURL(**THE URL THAT A USER SENDS**)
            if (!message.channel.first.size()) {
                return message.reply("please give me a website URL to embed!");
        } else message.channel.first();
            message.channel.send(`${siteEmbed}`);
    }

});

client.login('My token here');

感谢您的帮助,祝您度过愉快的一天! :)

【问题讨论】:

    标签: javascript web discord discord.js embed


    【解决方案1】:

    要发送带有链接的嵌入,您可以这样做。这将在标题中创建一个带有超链接的嵌入。

    const siteEmbed = new Discord.MessageEmbed()
        .setURL(args[0])
        .setTitle("Your desription here");
    

    有关嵌入的更多信息,请参见此处https://discordjs.guide/popular-topics/embeds.html#embed-preview

    要检查您的用户是否真的发送了链接,您可以检查第一个参数是否存在。

    if (!args[0]) {
        return message.reply("please give me a website URL to embed!");
    }
    

    【讨论】:

    • 谢谢!这可以很好地识别用户是否发送了 URL,但我仍然需要弄清楚如何使某人发送的 URL 是放置在嵌入中的 URL,而不是预先确定的 URL。我计划使用它为不自动嵌入 Discord 的网站创建嵌入,我不确定如何获取某人发送到代码的 .setURL() 部分的 URL。再次感谢你的帮助! :)
    • 您可以只使用.setURL(args[0]),但请确保检查 URL 是否已给出后执行此操作。
    • 如果您对答案感到满意,您应该接受它并带有复选标记。这样其他有类似问题的人就知道是什么帮助你解决了问题?
    【解决方案2】:

    对于正在查看此问题的任何人,使用 Pupeteer API 截取网站并附加用户发送的 URL 已长期解决此问题。当我忘记 args 存在时,感谢您的帮助:D

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-06-15
      • 2020-09-22
      • 2011-04-12
      • 2021-09-03
      • 1970-01-01
      • 2017-09-30
      相关资源
      最近更新 更多