小编Mr.*_*cal的帖子

使用telegram.bot发送照片

我想在电报中创建一个机器人.搜索之后,我在Nuget包中找到了telegram.bot.

但我发送照片时遇到了麻烦.功能定义就像

Bot.SendPhoto(int channelId, string photo, string caption)
Run Code Online (Sandbox Code Playgroud)

但我不知道string photo参数中的预期结果.我应该将图像转换为base64字符串,还是传递图像路径,还是......?

我的代码目前看起来像这样

var Bot = new Telegram.Bot.Api("API KEY");
var b = new System.Net.WebClient().DownloadData(a.DefaultImage());
System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(new System.IO.MemoryStream(b));
var z = bmp.GetThumbnailImage(200, (200 * bmp.Height) / bmp.Width, 
   new System.Drawing.Image.GetThumbnailImageAbort(
      delegate { return true; }), IntPtr.Zero);
System.IO.MemoryStream ms = new System.IO.MemoryStream();
z.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
var x = new Telegram.Bot.Types.FileToSend() 
{ 
    Filename = a.DefaultImage().Split('/').LastOrDefault(), Content = ms 
};

var t = Bot.SendPhoto("@Chanel", x, a.Title);
Run Code Online (Sandbox Code Playgroud)

但这导致了一个例外

Telegram.Bot.Types.ApiRequestException:[错误]:错误请求:要发送的文件必须为非空

c# telegram-bot

4
推荐指数
1
解决办法
6317
查看次数

标签 统计

c# ×1

telegram-bot ×1