如何在WPF C#的Discord嵌入消息中添加字段?
如何在WPF C#的Discord Webhook嵌入消息中添加字段
嘿,我看你已经把Discord嵌入消息的基础结构搭得差不多了,现在就差字段部分对吧?其实核心问题是你的Fields类是空的,咱们先把这个补上,再一步步把字段加到嵌入里。
第一步:完善Fields类
Discord的嵌入字段需要三个核心属性(其中两个必填):
name:字段的标题(必填)value:字段的内容(必填)inline:是否让字段和其他字段并排显示(可选,默认false)
把你的Fields类改成这样:
public class Fields { [JsonProperty("name")] public string Name { get; set; } [JsonProperty("value")] public string Value { get; set; } [JsonProperty("inline")] public bool Inline { get; set; } }
第二步:在Embed中添加字段列表
现在你可以在构建Embed对象的时候,初始化fields集合,并添加具体的字段实例了。比如在你的EmbedBuilder.buildEmbed()方法里,给Embed对象补上fields属性:
public static void buildEmbed() { Json json = new Json() { embeds = new List<Embed>() { new Embed { author = new Author { name = "示例作者", iconurl = "https://example.com/avatar.png", }, title = "示例嵌入标题", url = "https://example.com", color = 14957895, description = "这是一个带字段的嵌入消息示例", // 这里添加字段列表 fields = new List<Fields>() { new Fields { Name = "第一个字段", Value = "这是第一个字段的内容", Inline = true // 让这个字段和下一个并排 }, new Fields { Name = "第二个字段", Value = "这是第二个字段的内容", Inline = true }, new Fields { Name = "第三个字段", Value = "这个字段单独占一行", Inline = false } }, thumbnail = new Thumbnail { url = "https://example.com/thumbnail.png", }, footer = new Footer { text = "示例页脚", iconurl = "https://example.com/footer-icon.png", } } } }; HTTP.MakeRequest(Properties.Settings.Default.discordhook, Newtonsoft.Json.JsonConvert.SerializeObject(json)); }
第三步:保存嵌入时同步字段配置
如果你需要在saveEmbed()方法里保存带字段的配置,同样要给对应的Embed对象加上fields集合,写法和上面一致就行。
关键注意点
- 每个字段的
name和value都不能为空,否则Discord会直接忽略这个字段 inline设为true时,最多三个字段可以并排显示,超出的会自动换行- 字段数量没有严格限制,但Discord对整个嵌入消息的总字符数有上限,别一次性加太多字段就行
这样修改之后,你的Webhook就能正常发送带字段的嵌入消息啦!
内容的提问来源于stack exchange,提问作者HellFireElite
相关产品推荐
相关产品推荐

