Loading... # C# 企业微信消息推送对接,实现天气预报推送 [迷恋自留地](https://hunji.xyz/) ## 准备工作 需要获取的东西`1. 企业Id`,`2.应用secret 和 应用ID` ### 获取企业id 注册完成后,在我的企业=》企业信息=》最下面企业id ![](https://img-blog.csdnimg.cn/bf73cc40bb94417cb8465c6f49adc95f.png) ### 获取应用secret 和 应用ID ![](https://img-blog.csdnimg.cn/7f76a23a373c426b8d81d78db81d30c9.png) ![ ](https://img-blog.csdnimg.cn/d6ba3f88d8f64c6db12769029c3ea160.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA6L-35oGL6Ieq55WZ5Zyw,size_20,color_FFFFFF,t_70,g_se,x_16) ## 发送微信消息 ```csharp class WeCom { public static string weComCId = "ww2b b0bf8";//企业Id① public static string weComSecret = "EbKnQqG2y1qAVNL42 6 E"; //应用secret② public static string weComAId = "100 "; //应用ID③ public static string weComTouId = "@all"; /// <summary> /// 发送微信通知 /// </summary> /// <param name="text">消息</param> /// <returns></returns> public string SendToWeCom(string text) { // 获取Token string getTokenUrl = $"https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={weComCId}&corpsecret={weComSecret}"; string token = JsonConvert.DeserializeObject<dynamic>(new RestClient(getTokenUrl) .Get(new RestRequest()).Content).access_token; System.Console.WriteLine(token); if (!String.IsNullOrWhiteSpace(token)) { var request = new RestRequest(); var client = new RestClient($"https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token={token}"); var data = new { touser = weComTouId, agentid = weComAId, msgtype = "text", text = new { content = text }, duplicate_check_interval = 600 }; string serJson = JsonConvert.SerializeObject(data); System.Console.WriteLine(serJson); request.Method = Method.POST; request.AddHeader("Accept", "application/json"); request.Parameters.Clear(); request.AddParameter("application/json", serJson, ParameterType.RequestBody); return client.Execute(request).Content; } return "-1"; } } ``` 直接调用 ```csharp new WeCom().SendToWeCom("你好"); ``` 就会发送消息 ## 实现天气的推送 主要是天气接口的获取,还有就是定时任务任务 可以通过[.NET Core 基于 IHostedService 实现后台定时任务](https://blog.csdn.net/qq_40732336/article/details/120419005) 或者 QuartzJob(目前用的这个) ```csharp var RESULT= DoRequest.SendRequest_Get("http://t.weather.itboy.net/api/weather/city/101020100"); var Jo = JObject.Parse(RESULT); if (Jo["status"].ToString()=="200") { var AA = Jo["data"]["forecast"].ToString().JsonToList<Forecast>(); var entity= AA.Where(x => x.ymd == DateTime.Now.ToString("yyyy-MM-dd")).FirstOrDefault(); if (entity != null) { var str = $" ---上海天气--- \n" + $" 时间: { entity.ymd} \n" + $" 农历: { CnCanlendar_nongli.GetChineseDateTime(DateTime.Now)} \n" + $" 星期: { entity.week} \n" + $" 天气: { entity.type} \n" + $" 风速: { entity.fl} + { entity.fx} \n" + $" 提示: { entity.notice} " ; new WeCom().SendToWeCom(str); } } ``` ## 效果 ![](https://img-blog.csdnimg.cn/5a625c8b33fe42a488d821056bbcfb9c.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA6L-35oGL6Ieq55WZ5Zyw,size_17,color_FFFFFF,t_70,g_se,x_16) ![我的公众号](https://img-blog.csdnimg.cn/20210517111144223.png) 最后修改:2021 年 09 月 25 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏