赞
踩
这两天微信公众号消息提醒蛮火的,我也来蹭一下热度,我们的主题是考研倒计时,顺便也发一发天气预报。
获取我们需要的数据,比如天气信息
然后去微信公众平台注册一个测试号,调用接口发信息
最后把他部署在腾讯云函数上实现定时执行
开始吧
首先是打开微信公众号测试号,打开这个链接去扫码登录,登录之后会给你
上面这两个,待会需要用
然后滑到下面,找到个二维码,扫码
扫码之后会给右边的微信号,这里这个数据也要用到
找到下面新增模板
标题自己定,对应如图所示,模板具体内容在下面
{{ }}
{{ }}
在努力学习的同时也别忘了:
{{english.DATA}}
城市:{{city.DATA}}
天气:{{weather.DATA}}
最低气温:{{tempn.DATA}}
最高气温:{{temp.DATA}}
距离考研还有: {{live.DATA}} 天
推送日期:{{date.DATA}}
这里多说几句,代码格式可以自己设计,每个{{}}相当于一个槽,内容可以自己定义,版式也在这里设置,自己操作了就知道了,每个槽的位置是可以自己调整的
这边设置完了之后我们就要去配置python端的代码了
首先你的开发环境要有requests库,没有的话pip一下
pip install requests
# encoding: utf-8 import requests import json import time import datetime import random ''' 把你从微信公众平台获取到的 appid、 secret、 微信用户id、 模板id、 城市id 替换成你自己的,就能运行了,代码里的信息我处理过了,不替换是不能直接跑的 然后模板那边再自定义一下就实现了你的专属消息提醒 ''' def main(even,s): import time print(even,s) appid = 'wx95db893e97bfc4' secret = 'bedd8089bdde699f18fb6764990b' touser = ['oi7xM5nOkQk6kslwm3iyzR93-Z00','oi7xM5hSn5RvisXNc_-gvBzgU'] # 微信用户id template_id = 'hldqQetj_1ykFda5gnc6CTwjA3E-aMpLiUrYsrEI' # 模板id city_id = '10129001' # 城市天气id # birthday = "1995-04-10" # 考研日期,懒得改变量名了 birthday = '2022-12-24' List_A = ['干饭人,干饭魂','人是铁,饭是钢,一顿不吃饿得慌','身体是革命的本钱,记得吃饭','玩玩乐乐吃吃喝喝,做个可爱迷人的小甜豆','恋爱可以慢慢谈,肉必须趁热吃','按时吃饭,早睡早起,自律如昔,能扛大事','天要下雨 ,菜要下饭','吃货的最高境界 ——眼见为食','世界这么大,我们去吃吃看','尊敬的客户:现已到吃饭时间,你已较长时间没有进食了,请抓紧时间吃饭,逾期将收取滞纳期限','你的胃来求我,让我告诉你,好好吃饭吧,别虐待我','火锅、烧烤、啤酒,不是很贵,但很对胃','人生苦短,再来一碗','人生得意须尽欢,胡吃海塞需尽兴'] # List_A = ['天要下雨 ,菜要下饭。','吃货的最高境界 ——眼见为食。'] e = List_A[random.randint(0,len(List_A)-1)] # 底部信息 grant_type = 'client_credential' url = f'https://api.weixin.qq.com/cgi-bin/token?grant_type={grant_type}&appid={appid}&secret={secret}' response = requests.get(url).json() access_token = '' if response['expires_in'] == 7200: # 获取token access_token = response['access_token'] # 天气获取 headers = { 'Referer': 'http://www.weather.com.cn/', 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36' } url = f'http://d1.weather.com.cn/weather_index/{city_id}.html?_=' + str(int(round(time.time() * 1000))) # 日期计算 r = requests.get(url, headers=headers) r.encoding = "utf8" res = eval(r.text.split(";")[0].split("=")[-1]) time = res['weatherinfo']['fctime'] year = time[0:4] month = time[4:6] day = time[6:8] week_list = ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"] week = week_list[datetime.date(int(year), int(month), int(day)).weekday()] date = f'{year}年{month}月{day}日 {week}' # 你活了多久 birthday_date = datetime.datetime.strptime(birthday, "%Y-%m-%d") curr_datetime = datetime.datetime.now() # minus_datetime = curr_datetime - birthday_date minus_datetime = birthday_date - curr_datetime # 发送消息 sendMessage_url = f"https://api.weixin.qq.com/cgi-bin/message/template/send?access_token={access_token}" for user in touser: data = { "touser": user, "template_id": template_id, "appid": appid, "data": { "demo": { "value": "每日吃饭提醒", "color": "#FF7F50" }, "live": { "value": minus_datetime.days, "color": "#FF7F50" }, # "date2": { # "value": date2, # "color": "#6B6A66" # }, "date": { "value": date, "color": "#000000" }, "city": { "value": res['weatherinfo']['city'], "color": "#000000" }, "weather": { "value": res['weatherinfo']['weather'], "color": "#000000" }, "tempn": { "value": res['weatherinfo']['tempn'], "color": "#000000" }, "temp": { "value": res['weatherinfo']['temp'], "color": "#000000" }, # "wd": { # "value": info, # "color": "#FF7F50" # }, 'english': { "value": e, "color": "#FF6347" } } } getTemp = requests.post(sendMessage_url, data=json.dumps(data)).json() print(getTemp) else: print("appid或secret错误") if __name__ == "__main__": even = '' s = '' main(even,s)
到这里我们的代码已经能跑起来了,接下来就需要部署到云端了,我选的是腾讯云函数,六月之后就收费了,不过也不贵,一百万次调用才四十几
先进入腾讯云函数官网,百度一下就能找到,后面就跟着图片操作就行了,超级详细。
进入控制台,新建一个函数
配置一下层,里面是运行代码所需的第三方库
到了这里之后,设置一下触发条件,就是多久运行一次
到了这里就大功告成了!!!
上个效果图看看,右边的其实就是效果图
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。