前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >自动每天给你一碗鲜鸡汤

自动每天给你一碗鲜鸡汤

原创
作者头像
谭广健
发布2022-04-20 10:59:13
4630
发布2022-04-20 10:59:13
举报
文章被收录于专栏:谭广健的专栏谭广健的专栏

世界上最难做的事情,就是坚持。。坚持每天看一篇文章,坚持每月去一次实体书店,坚持每月最少发布一篇原创的文章。这样在时间的洗礼下,就会逐步成长逐步认知。有时候不得不佩服在朋友圈的微商,每天都可以发心灵鸡汤;当然他们也是转发人家的,毕竟对他们来说发朋友圈是一个Job。不过也正是这样,每天都有一篇心灵鸡汤也是一个不错的打鸡血,我也尝试过,但遗憾没有坚持;遇到的问题就是鸡汤不够。。。所以这次刚好手闲,尝试将鸡汤文对接一下手头的项目进行测试。构想也是比较简单,就是8点通过接口获取鸡汤然后再通过钉钉的接口群发。

1、获取鸡汤

我们第一步需要解决鸡汤文,那怎么每天都获得鸡汤文。本来想自己弄个库然后随机抽取,但这样有点耗时费力。建表找数据对接。。后来发现网上有一些鸡汤的免费API,于是就直接调用了。

代码语言:javascript
复制
 public string juhe() {
  string ResponseInfo = "";
  try{
     string url = "https://apis.juhe.cn/fapig/soup/query?key=key";
     Encoding encoding = Encoding.UTF8;
     //创建HTTP请求
     HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
     request.Method = "GET";
     request.Accept = "text/html, application/xhtml+xml, */*";
     request.ContentType = "application/json";
     HttpWebResponse response = (HttpWebResponse)request.GetResponse();
     using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8))
      {
         ResponseInfo = reader.ReadToEnd();
      }
    JObject jobj = JObject.Parse(ResponseInfo);
    if (int.Parse(jobj["error_code"].ToString()) == 0)
    {
     JObject Txt = JObject.Parse(jobj["result"].ToString());
    ResponseInfo = Txt["text"].ToString();
     }
    }catch (Exception _err){
      LogManager.WriteLog("juhe=====>:"+ResponseInfo+"_err==>"+ _err);
    }
   return ResponseInfo;                     
}

通过上面的函数就可以获得鸡汤文。

2、发送鸡汤文

有菜料就要下菜了,怎么下菜就各人喜欢吧,我们现在对接的就是之前提的钉钉接口。也很简单。

代码语言:javascript
复制
public void Get_userlist() {
 string MSG = juhe();//获取上文提的鸡汤文
 if (string.IsNullOrEmpty(MSG) && MSG.Length == 0) {
    return;
 }
 MSG =MSG+ "今天是:" + System.DateTime.Now.ToString("yyyy年MM月dd日 dddd")+ ",祝愿你有美好的一天。";
 var accesstoken = DING_SDK.GetAccessToken(CorpId, API_Token);
 DING_SDK.Send_msg("166000256735255987", MSG, accesstoken.AccessToken);//发送
 return;
 ///下面注意是群发
    if (data_str.Count == 0){                
       var Departinfo = DING_SDK.GetDepartIds(1, accesstoken.AccessToken);
       foreach (var departid in Departinfo)
           {
            DepartFor(departid, accesstoken.AccessToken);
           }             
    }
    HashSet<string> hs = new HashSet<string>(data_str);
    foreach (var departid in hs)
    {
        string[] strArray = departid.Split('|');
        DING_SDK.Send_msg(strArray[0], MSG, accesstoken.AccessToken);
    }
}

上面就是发送。

3、定时发送

定时发送就简单了,方法各异;最简单的就是用系统自带的定时执行器进行发送,但这个只要定时唤醒程序就可以了。如果不想的就麻烦点自己写个定时器,但不好的地方就是程序一直执行(当然可以写服务)但都消耗系统资源。不过咱们就跑这个看看吧,程序中如何定时其实也很简单就是通过比对时间就可以,但注意要比对到秒,因为如果定时到分或时就可能会执行多次,好吧还是上代码。。

代码语言:javascript
复制
private void timer1_Tick(object sender, EventArgs e)
    {
       if (DateTime.Now.TimeOfDay.ToString().Contains("08:30:38")) {
           Get_userlist();
       }            
       this.uiLedStopwatch1.Text = DateTime.Now.ToString().Replace("/","-");            
   }

这个就是通过程序中的一个定时器,这个定时器除了显示时间外就是判断当前的时间是否符合当前时间。当然这个定时执行最好通过线程处理,但这也也不坏我们的事。能用就行。还有就是这个时间最好能对ini文件,自动动态。。

写到最后,按上面的核心就能写一个每天一个鸡汤的程序,让你每天充满正能量。

-完-

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档