TelegramBot 400 错误请求:找不到媒体

问题描述

我尝试通过电报机器人发送专辑。 有时我会收到错误 Telegram.Bot.Exceptions.ApiRequestException: Bad Request: media not found at Telegram.Bot.TelegramBotClient.MakeRequestAsync[TResponse](IRequest 1 request,CancellationToken cancellationToken)。 InputMedia 不是空的。怎么了?

    var streams = new List<Stream>();
    try
    {       

        List<IAlbumInputMedia> inputMedia = new List<IAlbumInputMedia>();

        foreach (var image in images)
        {
            var stream = new MemoryStream(image.Data,false);
            var photo = new InputMedia(stream,image.Name);
            inputMedia.Add(new InputMediaPhoto(photo) {Caption = image.Name});
            streams.Add(stream);
        }

        var response = await _bot.SendMediaGroupAsync(inputMedia,chatId,cancellationToken: token);            
}

解决方法

我遇到了同样的问题,这是由您的代码中的 image.Name 引起的。它应该只是像 someImage.png 或 someImage.jpg。您可能在那里有“C:\SomeStuff\someImage.png”,它是全名而不是名称,因此 Stream 很好,但名称错误并且 Api 混淆了