世界上最难做的事情,就是坚持。。坚持每天看一篇文章,坚持每月去一次实体书店,坚持每月最少发布一篇原创的文章。这样在时间的洗礼下,就会逐步成长逐步认知。有时候不得不佩服在朋友圈的微商,每天都可以发心灵鸡汤;当然他们也是转发人家的,毕竟对他们来说发朋友圈是一个Job。不过也正是这样,每天都有一篇心灵鸡汤也是一个不错的打鸡血,我也尝试过,但遗憾没有坚持;遇到的问题就是鸡汤不够。。。所以这次刚好手闲,尝试将鸡汤文对接一下手头的项目进行测试。构想也是比较简单,就是8点通过接口获取鸡汤然后再通过钉钉的接口群发。
1、获取鸡汤
我们第一步需要解决鸡汤文,那怎么每天都获得鸡汤文。本来想自己弄个库然后随机抽取,但这样有点耗时费力。建表找数据对接。。后来发现网上有一些鸡汤的免费API,于是就直接调用了。
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、发送鸡汤文
有菜料就要下菜了,怎么下菜就各人喜欢吧,我们现在对接的就是之前提的钉钉接口。也很简单。
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、定时发送
定时发送就简单了,方法各异;最简单的就是用系统自带的定时执行器进行发送,但这个只要定时唤醒程序就可以了。如果不想的就麻烦点自己写个定时器,但不好的地方就是程序一直执行(当然可以写服务)但都消耗系统资源。不过咱们就跑这个看看吧,程序中如何定时其实也很简单就是通过比对时间就可以,但注意要比对到秒,因为如果定时到分或时就可能会执行多次,好吧还是上代码。。
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 删除。