Loading...

60s看世界

日常推荐2个月前更新 Jone
132 0 0

新年快乐兄弟们,缺了好几天了今天稍微写写,最近更新了下公众号回复功能,增加了一些好玩的功能。

新增功能

目前加了两个,分别是微信昵称后加电话小字和60s看世界,以后再陆续加新的吧。

60s看世界

公众号内回复60s看世界关键字即可获取当日最新新闻,以图片的形式返回给用户。

60s看世界

分享下实现方式,原本想着是定时爬取公众号里发送的最新新闻,然后调用接口保存到公众号素材库里,用户出发关键字后再根据素材id把图片发送给用户。

不过今天时间有点太匆忙了,没时间自己爬了就在网上找了个免费的api,周末再完善吧。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
response, err := http.Get("https://jx.iqfk.top/60s.php?key=54K55paw6Iqx6Zuo")
defer response.Body.Close()
if err != nil {
return
}
body, err := io.ReadAll(response.Body)
if err != nil {
return
}
var data map[string]interface{}
_ = json.Unmarshal(body, &data)
timeStr := time.Now().Format("2006-01-02")
if strings.Compare(data["data"].(map[string]interface{})["date"].(string), timeStr) == 0 {
exist, err := global.Client.Exists(global.Ctx, timeStr).Result()
if err != nil {
return
}
if exist == 0 {
response, err = http.Get(data["data"].(map[string]interface{})["image"].(string))
defer response.Body.Close()
if err != nil {
return
}
out, err := os.Create("./image/" + timeStr + ".png")
if err != nil {
panic(err)
}
defer out.Close()
_, _ = io.Copy(out, response.Body)
mediaID, _, _ := global.Official.OfficialAccount.GetMaterial().AddMaterial(material.MediaTypeImage, "./image/"+timeStr+".png")
if err != nil {
return
}
global.Client.Set(global.Ctx, timeStr, mediaID, 24*time.Hour)
}
}

贴下代码,用了redis来保存每天上传新闻图片的唯一标识ID,之后根据素材id找到素材发给用户。

电话昵称

公众号内回复电话昵称即可进入昵称模式,之后回复任意电话数字会回复小标数字。

60s看世界

之后回复任意数字后台都会回复小标的数字,可以用来当微信昵称,直到回复Q才会退出此模式。

闲聊

随迟但到,新年快乐大家

© 版权声明

相关文章