C# 企业微信消息推送对接,实现天气预报推送

Posted dotNET跨平台

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 企业微信消息推送对接,实现天气预报推送相关的知识,希望对你有一定的参考价值。

准备工作

需要获取的东西1. 企业Id,2.应用secret 和 应用ID

获取企业id

注册完成后,在我的企业=》企业信息=》最下面企业id

获取应用secret 和  应用ID

发送微信消息

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

直接调用

new WeCom().SendToWeCom("你好");

就会发送消息

实现天气的推送

主要是天气接口的获取,还有就是定时任务任务 可以通过  .NET Core 基于 IHostedService 实现后台定时任务或者 QuartzJob(目前用的这个)

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

效果


以上是关于C# 企业微信消息推送对接,实现天气预报推送的主要内容,如果未能解决你的问题,请参考以下文章

微信消息推送神器pushplus介绍,让消息推送更简单

微信消息推送神器pushplus介绍,让消息推送更简单

微信的新消息推送是怎么实现的(企业号开发)

企业微信简单实现消息推送

微擎对接小程序消息推送不成功

PowerShell 实现企业微信机器人推送消息