问题描述
我尝试通过电报机器人发送专辑。
有时我会收到错误 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 混淆了