我想在 Telegram 中创建一个机器人。经过搜索,我在一个 Nuget 包中找到了 telegram.bot。
但我无法发送照片。函数定义就像
Bot.SendPhoto(int channelId, string photo, string caption)
但我不知道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);
但这导致异常
Telegram.Bot.Types.ApiRequestException:[错误]:错误请求:要发送的文件必须非空