【问题标题】:Discord bot doesn't send an imageDiscord 机器人不发送图像
【发布时间】:2021-06-18 14:44:23
【问题描述】:

我希望我的机器人从给定的 url 发送带有从 String() 获得的标题的图像,但是使用 SendFileAsync() 它完全不起作用。是否有其他方法可以从互联网发送图像,或者我只是在这里搞砸了一些东西?

public class Task : ModuleBase
        {
            public Task()
            {
                Thread.Sleep(6000);
                IReadOnlyCollection<SocketGuild> guilds = CommandHandler._discord.Guilds;
                foreach (var guild in guilds)
                {
                    JobManager.AddJob(() => CommandHandler._discord.GetGuild(guild.Id).DefaultChannel.SendFileAsync("HERE_GOES_URL", String()), (s) => s.ToRunEvery(5).Seconds());
                }
            }
        }
        static void Initializer()
        {
            JobManager.Initialize(new MyRegistry());
        }

【问题讨论】:

    标签: c# discord.net


    【解决方案1】:

    要使用SendFileAsync,您需要在本地拥有该文件。 如果您想在不下载的情况下发送 URL,只需使用 SendMessageAsync。 Discord 将从 URL 预览图像(除非用户手动禁用)。

    否则,这会有所帮助:

    using System.Net;
    using System.IO;
    ...
    byte[] buffer = (new WebClient().DownloadData("myurl"));
    using (MemoryStream ms = new MemoryStream(buffer))
    {
       await SendFileAsync(ms, ...);
    }
    

    我建议将其包装成一个函数。

    如果您仍然坚信不处理下载问题,请查看EmbedBuilder

    与您的问题无关的注释

    【讨论】:

      猜你喜欢
      • 2020-09-12
      • 2021-11-17
      • 2021-08-19
      • 2021-04-17
      • 2017-07-27
      • 2020-11-23
      • 2021-01-08
      • 2020-04-02
      • 2019-11-06
      相关资源
      最近更新 更多