如何使用嵌入discord.net webhook c#发送文件附件

Posted

技术标签:

【中文标题】如何使用嵌入discord.net webhook c#发送文件附件【英文标题】:How to send file attachment with embed discord.net webhook c# 【发布时间】:2020-10-11 03:31:32 【问题描述】:

我已经尝试了在网络挂钩上添加嵌入的所有解决方案,但对我的情况没有任何效果,还是我遗漏了什么?

我正在使用 Discord.Net v2.2.0

这是我的部分代码

var DCW = new DiscordWebhookClient(DCWebhook)

using (var client = DCW)

    var eb = new EmbedBuilder();
        eb.WithDescription("some text")
      .Build();

    await client.SendFileAsync(filePath: "file.txt", text: null, embeds: eb);

此代码显示错误

无法从“Discord.Embed”转换为 System.Collections.Generic.IEnumerable

我尝试了这段代码并修复了错误

await client.SendFileAsync(filePath: "file.txt", text: null, embeds: (IEnumerable<Embed>)eb);

我构建并运行了 .exe 文件,控制台出现错误

未处理的异常:System.InvalidCastException:无法转换 要键入的“Discord.EmbedBuilder”类型的对象 System.Collections.Generic.IEnumerable 1[Discord.Embed]。

参考: Send a Discord Embed via Webhook C#

Discord.net bot Embed Message

ModifyAsync Not Working

https://discord.foxbot.me/docs/api/Discord.EmbedBuilder.html

我知道上面的大多数解决方案都有效,但对我来说不是。 我非常感谢有关如何解决此问题的示例。谢谢!

【问题讨论】:

你能把你的代码复制粘贴在这里,而不是代码的图像吗? 【参考方案1】:

所以据我所知,您正试图将IEnumerable&lt;Embed&gt; 传递给SendFileAsync。问题是,您不能将EmbedBuilder 转换为IEnumerable&lt;Embed&gt;。您需要向它传递一个 IEnumerable&lt;Embed&gt;,您可以使用类似数组 (Embed[]) 的东西来获得它。

// This creates the Embed builder
var eb = new EmbedBuilder();
    eb.AddField("RandomField", "Hello, my name is random Field"); 

// Here you make an array with 1 entry, which is the embed ( from EmbedBuilder.Build() )
Embed[] embedArray = new Embed[]  eb.Build() ;

// Now you pass it into the method like this: 'embeds: embedArray'
await DCW.SendFileAsync(filePath: "C:\RandomFile.txt", text: "Embed", embeds: embedArray);

【讨论】:

如果您正在搜索此答案,请将其标记为答案

以上是关于如何使用嵌入discord.net webhook c#发送文件附件的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Discord (webhook) 上的嵌入消息中读取特定文本

在机器人发布在 Discord.net 中编写的 Discord 代码后,我正在寻找一种删除 bot 命令的方法

使用 XHR 请求将 Discord 嵌入发送到 Webhook

使用变量作为掩码链接; discord.py 嵌入通过 webhook 发布; Python

如何使用 Discord.NET 提取 Discord ID 并将其转换为用户名?

如何在 Discord.NET 中通过公会 ID 和频道 ID 发送消息