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;
            }

        }
相关推荐
qq_431280709 分钟前
工作经验总结:半导体上位机软件开发与互联网开发的不同
c#·.net
Metaphor69235 分钟前
使用 Python 查找并替换 Word 文档中的文本
python·c#·word
草履虫君39 分钟前
wsl的装龙虾方式,接入飞书的时候需要在wsl环境装飞书插件,那么node模式接入飞书,需要怎么装飞书插件?
服务器·经验分享·飞书
SL-staff41 分钟前
2026 企业项目管理工具选型:JIRA、飞书、JVS企业计划功能对比
项目管理·飞书·团队开发·jira·okr·jvs企业计划·决策流程
chen_2271 小时前
kanzi插件之节点树可视化
c#·kanzi
傻啦嘿哟1 小时前
管好PPT的“骨架”:用Python控制页面与文档属性
开发语言·javascript·c#
Densen20141 小时前
企业H5站点升级PWA (三)
前端·nginx·c#
tianxiaxue13 小时前
企微群内超时提醒通知到飞书/钉钉?
钉钉·飞书·企业微信
伽蓝_游戏3 小时前
UGUI源码剖析 (24):常用插件扩展介绍
ui·unity·c#·游戏引擎·游戏程序
北京理工大学软件工程16 小时前
C#111
开发语言·c#