前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >用Python实现微信定时早安提醒,温馨关怀不间断

用Python实现微信定时早安提醒,温馨关怀不间断

原创
作者头像
快乐的小白
修改2024-02-28 17:28:05
1.2K0
修改2024-02-28 17:28:05
举报
文章被收录于专栏:小白开发

之前有写过一篇用云函数的方式来实现。然后突然想起来了上个星期看到了社区文章能在线运行Python的新功能,所以就想着用Python也来实现这个小情/^趣,现在我们就开始来搞吧。

一,首先我们需要准备以下几个地方。

1.微信公众号,如果没有微信公众号可以用测试号https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login,下面我以测试号为例,来做教程。

1.2 首先微信登录测试号后,我们需要将appID和appsecret复制下来。(复制前请先刷新一遍页面,因为a会变化)

1.3 然后你需要让你的女朋友关注一下测试号,页面上有一个人二维码,发给她让她微信扫码关注,这样二维码的右边栏就可以得到你女朋友的openid,这个后面代码有用。

1.4 然后百度一下你女朋友所在城市的城市编码,用于所在城市的天气查询。

1.5 再就是需要添加一下相应的模板消息,这里我以为我的代码为例,做了一个例子供参考。

代码语言:php
复制
{{first.DATA}} 
当前城市:{{keyword1.DATA}} 
今天天气:{{keyword2.DATA}} 
现在温度:{{keyword3.DATA}} 
温馨提示:{{keyword4.DATA}} 
我们已经恋爱了:{{keyword5.DATA}} 
距离小宝生日还有:{{keyword6.DATA}} 
{{remark.DATA}}

1.6 以上工作都做好了,就可以根据下面的代码进行调整了。

二,用Python来实现(鼠标放在代码上就可以在线运行)

代码语言:python
代码运行次数:0
复制
import json
import urllib.request
from datetime import datetime

# 配置参数
appId = 'appId'  # 对应自己的appId
appSecret = 'appSecret'  # 对应自己的appSecret
touser = 'oIpRe6aPBBI-Yne8vy1clCdWUFyM'  # 女朋友的openid
template_id = "ryM6DGiZt9rbKVCpkjGLJ45_n40xakLcHd1Fm6d2RdQ"  # 模板id
city_code = '101200101'  # 城市编码

# 获取 access_token
wxgzhurl = f"https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={appId}&secret={appSecret}"
with urllib.request.urlopen(wxgzhurl) as response:
    access_token_Arr = json.loads(response.read().decode('utf-8'))
ACCESS_TOKEN = access_token_Arr.get('access_token')

if ACCESS_TOKEN is None:
    print("access_token 键不存在或者不正确,请使用你自己的 access_token")
else:
    # 计算恋爱天数
    lovestart = datetime(2022, 8, 1)
    love = (datetime.now() - lovestart).days

    # 计算距离下一个生日的天数
    birthdaystart = datetime(2023, 9, 25)
    birthday = (birthdaystart - datetime.now()).days
    birthday = abs(birthday)

    # 获取天气信息
    tianqiurl = f'http://t.weather.sojson.com/api/weather/city/{city_code}'
    with urllib.request.urlopen(tianqiurl) as response:
        tianqiapi = json.loads(response.read().decode('utf-8'))

    # 温馨提示
    wxts = '多喝水'  # 可以留空也可以写上一句

    # 构造模板消息
    data = {
        'touser': touser,
        'template_id': template_id,
        'data': {
            'keyword1': {'value': tianqiapi['cityInfo']['city'], 'color': "#000"},
            'keyword2': {'value': f"{tianqiapi['data']['forecast'][0]['type']} 明日: {tianqiapi['data']['forecast'][1]['type']}", 'color': "#000"},
            'keyword3': {'value': f"{tianqiapi['data']['forecast'][0]['low']}-{tianqiapi['data']['forecast'][0]['high']}", 'color': "#000"},
            'keyword4': {'value': wxts, 'color': "#FF00FF"},
            'keyword5': {'value': f"{love}天", 'color': "#FF1493"},
            'keyword6': {'value': f"{birthday}天", 'color': "#C71585"}
        }
    }

    # 发送模板消息
    url = f"https://api.weixin.qq.com/cgi-bin/message/template/send?access_token={ACCESS_TOKEN}"
    req = urllib.request.Request(url, data=json.dumps(data).encode('utf-8'), headers={'content-type': 'application/json'})
    with urllib.request.urlopen(req) as response:
        res = json.loads(response.read().decode('utf-8'))

    if res['errcode'] == 0 and res['errmsg'] == "ok":
        print("发送成功!")
    else:
        print("发送失败!请检查代码!!!")

最终实现效果如下

三,每日运行

1.每日运行的话,可以放到云服务器或轻量服务器里,你是大佬放哪都行。

2.如果小白,可以尝试使用腾讯云的云函数,用这个更简单,下面我以云函数运行为例。

3.首先我们登录腾讯云,在搜索栏搜索云函数

4.进入云函数,点击立即体验

3.这里我们选择 按照步骤选择,然后将代码填写到下面的编辑器,根据代码里的中文提示将最开始准备的参数填写进去。

4. 然后打开创建的云函数,测试一下,看看微信收到消息没,也就是刚刚关注的测试号会给你发消息。

5.收到消息后,我们就配置下定时器,让其每天早上自动运行 (早上七点半是 30 7 * * *)

四,收尾结语

在代码的世界里,我们利用Python的魔力实现了定时发送早安信息给心爱的人。每当代码和关怀相遇,便创造了一份温馨的惊喜。愿这段代码能够像循环一样,不断地发送关怀,让爱情和技术在每一个清晨都得以完美结合。(毛用都没,更多的是陪伴,放下键盘鼠标,多陪陪就行了)

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一,首先我们需要准备以下几个地方。
  • 二,用Python来实现(鼠标放在代码上就可以在线运行)
  • 三,每日运行
  • 四,收尾结语
相关产品与服务
云函数
云函数(Serverless Cloud Function,SCF)是腾讯云为企业和开发者们提供的无服务器执行环境,帮助您在无需购买和管理服务器的情况下运行代码。您只需使用平台支持的语言编写核心代码并设置代码运行的条件,即可在腾讯云基础设施上弹性、安全地运行代码。云函数是实时文件处理和数据处理等场景下理想的计算平台。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档