c# - 将字段添加到 ac# 嵌入式不和谐消息
问题描述
在我的 Wpf C# 文档中,我需要找到一种将嵌入消息发送到 webhook 的方法,我在互联网上找到了一些示例并将它们放入我的文件中。尽管如此,我仍然找不到如何向嵌入消息添加字段,这里是代码:
public class Json
{
// 'Username' value
[JsonProperty("username")]
public string username { get; set; }
// 'Avatar' value
[JsonProperty("avatar_url")]
// 'Content' value --> Always empty because we are using embed
public string avatarurl { get; set; }
[JsonProperty("content")]
public string content { get; set; }
// 'Embed' array value
[JsonProperty("embeds")]
public List<Embed> embeds { get; set; }
}
/*
Json class to compile the single embed
Action: n/a
*/
public class Embed
{
[JsonProperty("author")]
public Author author { get; set; }
[JsonProperty("title")]
public string title { get; set; }
[JsonProperty("url")]
public string url { get; set; }
[JsonProperty("description")]
public string description { get; set; }
[JsonProperty("color")]
public int color { get; set; }
[JsonProperty("fields")]
public List<Fields> fields { get; set; }
[JsonProperty("thumbnail")]
public Thumbnail thumbnail { get; set; }
[JsonProperty("image")]
public Image image { get; set; }
[JsonProperty("footer")]
public Footer footer { get; set; }
}
/*
Json class to compile the author in an embed
Action: n/a
*/
public class Author
{
[JsonProperty("name")]
public string name { get; set; }
[JsonProperty("url")]
public string url { get; set; }
[JsonProperty("icon_url")]
public string iconurl { get; set; }
}
/*
Json class to compile the fields in an embed
Action: n/a
*/
/*
Json class to compile the thumbnail in an embed
Action: n/a
*/
public class Thumbnail
{
[JsonProperty("url")]
public string url { get; set; }
}
/*
Json class to compile the image in an embed
Action: n/a
*/
public class Image
{
[JsonProperty("url")]
public string url { get; set; }
}
/*
Json class to compile the footer in an embed
Action: n/a
*/
public class Footer
{
[JsonProperty("text")]
public string text { get; set; }
[JsonProperty("icon_url")]
public string iconurl { get; set; }
}
/*
Json class to compile the config
Action: CONFIG
*/
public class Config
{
[JsonProperty("webhook_url")]
public string webhook { get; set; }
[JsonProperty("json")]
public Json json { get; set; }
}
public class Fields
{
}
然后,在 EmbedBuilder.cs 类中,我有:
public class EmbedBuilder
{
/*
Builds the JSON according to the local values
Action: COMPILE/EXECUTE
*/
public static void buildEmbed()
{
Json json = new Json()
{
embeds = new List<Embed>()
{
new Embed
{
author = new Author
{
name = "",
iconurl = "",
},
title = "",
url = "",
color = 14957895,
description = "",
thumbnail = new Thumbnail
{
url = "",
},
image = new Image
{
url = ""
},
footer = new Footer
{
text = "",
iconurl = "",
}
}
}
};
// Call the HTTP client and execute request
HTTP.MakeRequest(Properties.Settings.Default.discordhook, Newtonsoft.Json.JsonConvert.SerializeObject(json));
}
/*
Compiles the local values into the format provided in Json.cs. Must have run the webhook once (soon will be dynamic)
Action: COMPILE/SAVE
*/
public static string saveEmbed()
{
// Make a new config
Config json = new Config()
{
webhook = Properties.Settings.Default.discordhook,
json = new Json
{
embeds = new List<Embed>()
{
new Embed
{
author = new Author
{
name = "",
iconurl = "",
},
title = "",
url = "",
color = ,
description = "",
thumbnail = new Thumbnail
{
url = "",
},
image = new Image
{
url = ""
},
footer = new Footer
{
text = "",
iconurl = "",
}
}
}
}
};
// Return a serialized value
return JsonConvert.SerializeObject(json);
}
}
我如何能够在我的消息中添加一个不和谐的嵌入字段,这是一张图片:
这只是我在互联网上找到的一个例子,我并不是专门寻找如何精确地创建相同的东西,只是关于如何添加一个字段。
解决方案
在对有关嵌入的不和谐开发人员门户进行一些研究后,我设法做到了这一点(https://birdie0.github.io/discord-webhooks-guide/structure/embed/fields.html)。主要问题是我没有将它设置为数组,这将是正确的代码:
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace WpfApp1
{
/*
Json class to compile the full embed
Action: n/a
*/
public class Json
{
// 'Username' value
[JsonProperty("username")]
public string username { get; set; }
// 'Avatar' value
[JsonProperty("avatar_url")]
// 'Content' value --> Always empty because we are using embed
public string avatarurl { get; set; }
[JsonProperty("content")]
public string content { get; set; }
// 'Embed' array value
[JsonProperty("embeds")]
public List<Embed> embeds { get; set; }
}
/*
Json class to compile the single embed
Action: n/a
*/
public class Embed
{
[JsonProperty("author")]
public Author author { get; set; }
[JsonProperty("title")]
public string title { get; set; }
[JsonProperty("url")]
public string url { get; set; }
[JsonProperty("description")]
public string description { get; set; }
[JsonProperty("color")]
public int color { get; set; }
[JsonProperty("fields")]
public List<Field> fields { get; set; }
[JsonProperty("thumbnail")]
public Thumbnail thumbnail { get; set; }
[JsonProperty("image")]
public Image image { get; set; }
[JsonProperty("footer")]
public Footer footer { get; set; }
}
/*
Json class to compile the author in an embed
Action: n/a
*/
public class Author
{
[JsonProperty("name")]
public string name { get; set; }
[JsonProperty("url")]
public string url { get; set; }
[JsonProperty("icon_url")]
public string iconurl { get; set; }
}
/*
Json class to compile the fields in an embed
Action: n/a
*/
/*
Json class to compile the thumbnail in an embed
Action: n/a
*/
public class Thumbnail
{
[JsonProperty("url")]
public string url { get; set; }
}
/*
Json class to compile the image in an embed
Action: n/a
*/
public class Image
{
[JsonProperty("url")]
public string url { get; set; }
}
/*
Json class to compile the footer in an embed
Action: n/a
*/
public class Footer
{
[JsonProperty("text")]
public string text { get; set; }
[JsonProperty("icon_url")]
public string iconurl { get; set; }
}
/*
Json class to compile the config
Action: CONFIG
*/
public class Config
{
[JsonProperty("webhook_url")]
public string webhook { get; set; }
[JsonProperty("json")]
public Json json { get; set; }
}
public class Field
{
[JsonProperty("name")]
public string name { get; set; }
[JsonProperty("value")]
public string value { get; set; }
[JsonProperty("inline")]
public bool inline { get; set; }
}
}
推荐阅读
- html - 1 个 div,1 个文本输入,并排,将输入拉伸到 100%,两者都没有固定宽度
- asp.net-core - 将 appsettings.{Environment}.json 中的数组附加到 appsettings.json
- amazon-web-services - 如何重命名 AWS IoT 规则?
- python - Python Regex:如何在括号和引号之间提取字符串(如果存在)
- async-await - 是否可以使用在整个应用程序中共享的全局同步上下文?
- three.js - Aframe 在进入和退出 VR 时保留相机位置
- php - “无法连接到‘xxxx’ (113) 上的 MySQL 服务器”,MySQL 远程连接在服务器更改后停止工作
- c++ - c++ 标准库是静态库吗?
- c# - FtpWebRequest 下载文件失败
- python - “Python 从不隐式复制对象”是真的吗?