C# 发送飞书webhook消息

VS2026中NUGET安装 FeishuNotice,

这是项目说明:https://github.com/Ye1105/FeishuNotice

目前博主解锁了2个功能,一个是发webhook文本消息,一个是发webhook图片消息。

一、发webhook文本消息

cs 复制代码
 Feishu.RobotNoticeSync(webhook url, "hello");

二、发图片消息

1、先拿到 tenant_access_token。

2、放图片给飞书,拿到 image_key。

3、发送webhook图片消息。

cs 复制代码
        private  async void  button1_ClickAsync(object sender, EventArgs e)
        {

            // 1.拿到tenant_access_token
            string message = "{\"app_id\":\"cli_XXXXXXXXXX\",\"app_secret\":\"XXXXXXXXXXXXXX\"}";
            string rt = Post1("https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal", message);

            // 飞书返回 {"code":0,"expire":6203,"msg":"ok","tenant_access_token":"t-g104XXXXXXXXXXXXXXXXXXXXCE2EWTP"}
            var obj = JsonConvert.DeserializeObject<dynamic>((string)rt);
            string tmp = "Bearer " + obj.tenant_access_token.ToString(); //"Bearer t-g1043XXXXXXXXXXXXXXXXLIXH3"


            // 2.有了token,就可以上传图片了,上传图片后会返回一个image_key,这个image_key就可以在消息中使用了

            var options = new RestClientOptions("https://open.feishu.cn/open-apis/im/v1/images");           
            var client = new RestClient(options);
            var request = new RestRequest();
            request.Method = Method.Post;
            request.AddHeader("Authorization", tmp); 
            request.AddHeader("Content-Type", "multipart/form-data");
            request.AddParameter("image_type", "message");
            request.AddFile("image", "C:\\Users\\XXXXX\\Pictures\\kpi.png");

            var response = await client.ExecuteAsync(request);
            textBox1.Text =response.Content;

            // 飞书返回 {"code":0,"data":{"image_key":"img_v3_02vp_XXXXXXXXXXXXXXXXXXXXXX"},"msg":"success"}


            // 3.有了image_key,就可以在消息中发图片了
            //  await Feishu.RobotImgNotice(webhook, "img_v3_02vp_XXXXXXXXXXXXX");
        }


        //Post请求
        public static string Post1(string url, string obj)
        {
            string param = (obj);//参数
            byte[] bs = Encoding.UTF8.GetBytes(param);

            //创建一个新的HttpWebRequest对象。
            HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(url);

            // 将方法属性设置为"POST"以将数据发布到URI。
            req.Method = "POST";

            //设置contentType属性。
            req.ContentType = "application/json";

            req.ContentLength = bs.Length;
            using (Stream reqStream = req.GetRequestStream())
            {
                reqStream.Write(bs, 0, bs.Length);
                reqStream.Close();
                HttpWebResponse response2 = (HttpWebResponse)req.GetResponse();
                StreamReader sr2 = new StreamReader(response2.GetResponseStream(), Encoding.UTF8);
                string str = sr2.ReadToEnd();
                return str;
            }

        }
相关推荐
AppOS1 天前
手把手教你 Openclaw 在 Mac 上本地化部署,保姆级教程!接入飞书打造私人 AI 助手
人工智能·macos·飞书
武藤一雄1 天前
C# 异步回调与等待机制
前端·microsoft·设计模式·微软·c#·.netcore
乱蜂朝王1 天前
使用 C# 和 ONNX Runtime 部署 PaDiM 异常检测模型
开发语言·c#
算家云1 天前
OpenClaw进阶玩法:多飞书机器人部署指南
人工智能·飞书·openclaw
70asunflower1 天前
OpenClaw 飞书机器人集成完全指南
飞书·openclaw·小龙虾
JosieBook1 天前
【C#】VS中的 跨线程调试异常:CrossThreadMessagingException
开发语言·c#
追雨潮1 天前
BGE-M3 多语言向量模型实战:.NET C# 从原理到落地
开发语言·c#·.net
CheerWWW2 天前
GameFramework——Download篇
笔记·学习·unity·c#
格林威2 天前
ZeroMQ 在视觉系统中的应用
开发语言·人工智能·数码相机·机器学习·计算机视觉·c#·视觉检测
格林威2 天前
工业相机图像采集:如何避免多相机数据混乱
人工智能·数码相机·opencv·机器学习·计算机视觉·c#·视觉检测