【问题标题】:Trying to use a variable as Hyperlink markdown in Discord尝试在 Discord 中使用变量作为超链接降价
【发布时间】:2019-08-28 10:10:18
【问题描述】:

实际上我正在为 Discord 开发一个 Upload-Bot。我的问题是我想使用一个变量(包含一个 api 永久链接)作为超链接降价。

目前看起来是这样的:

但它应该看起来像这样:(“Vale Guardian”超链接标记应该包含来自“DpsReportVg”变量的永久链接)

using (WebClient client2 = new WebClient())
            {
                DpsReport1 = client2.DownloadString("https://dps.report/getUploads?json=1&userToken=5656165565161312564651635");
            }

            var dataObject = JsonConvert.DeserializeObject<dynamic>(DpsReport1);
            string DpsReportVg = dataObject.uploads[3].permalink.ToString();


            var embed = new EmbedBuilder();
            embed.WithTitle("DPS-Reports uploaded by ");
            embed.WithDescription(Context.User.Username);
            embed.WithColor(new Color(0, 255, 0));
            embed.WithCurrentTimestamp();
            embed.AddField("Spirit Vale", "[Vale Guardian](DpsReportVg)");

【问题讨论】:

    标签: c# json discord.net


    【解决方案1】:

    您几乎拥有它,但您忽略了一个小细节。 你有
    embed.AddField("Spirit Vale", "[Vale Guardian](DpsReportVg)");

    但你应该拥有的是
    embed.AddField("Spirit Vale", $"[Vale Guardian]({DpsReportVg})");

    说明: 您实际上并没有使用您的变量,您只是添加了一个恰好与您的变量名称匹配的字符串。
    我对您的代码的编辑使用字符串插值将您的变量插入到您的字符串中,从而提供您存储在变量中的实际链接。

    【讨论】:

    • 不相关,考虑使用 HttpClient 的单例实例而不是 WebClient。
    【解决方案2】:

    你需要使用EmbedBuilder.withUrl方法:

    查看官方文档以获取包含图片的完整示例:

    https://discord4j.readthedocs.io/en/latest/Making-embedded-content-using-EmbedBuilder/

    【讨论】:

    • Ty 但我之前试过这个,但如果我使用它,标题将被链接,而不是字段中的对象值。这就是我想要做的:)。
    • 您是否尝试过与文档中完全相同的示例,是否产生了与屏幕截图中相同的结果?如果没有,恐怕 API 已经改变,文档需要更新。
    • 是的,我在示例中尝试过它,它就像在示例中一样。但是如果我这样写embed.AddField("Spirit Vale", "[Vale Guardian](https://www.google.de/)"); 它可以工作,但是想用我的变量 DpsReportVg 更改google.de
    • 我猜@Anu6 搞定了!
    猜你喜欢
    • 2021-08-09
    • 1970-01-01
    • 2016-05-13
    • 2022-12-12
    • 1970-01-01
    • 2021-12-21
    • 1970-01-01
    • 1970-01-01
    • 2015-03-12
    相关资源
    最近更新 更多