Python 微信公众号发送消息(提醒消息)

1. 公众号测试地址

https://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?action=showinfo&t=sandbox/index

 

 

 

2. 代码

复制代码

# pip3 install requests
import requests
import json


def get_access_token():
    """
    获取微信全局接口的凭证(默认有效期俩个小时)
    如果不每天请求次数过多, 通过设置缓存即可
    """
    result = requests.get(
        url="https://api.weixin.qq.com/cgi-bin/token",
        params={
            "grant_type": "client_credential",
            "appid": "wx2499da7621f818e8",
            "secret": "6239e3dfc5af686777ea40b9f3df5f48",
        }
    ).json()

    if result.get("access_token"):
        access_token = result.get('access_token')
    else:
        access_token = None
    return access_token

def sendmsg(openid,msg):

    access_token = get_access_token()

    body = {
        "touser": openid,
        "msgtype": "text",
        "text": {
            "content": msg
        }
    }
    response = requests.post(
        url="https://api.weixin.qq.com/cgi-bin/message/custom/send",
        params={
            'access_token': access_token
        },
        data=bytes(json.dumps(body, ensure_ascii=False), encoding='utf-8')
    )
    # 这里可根据回执code进行判定是否发送成功(也可以根据code根据错误信息)
    result = response.json()
    print(result)



if __name__ == '__main__':
    sendmsg('关注者的ID','发送消息内容')
### 实现微信公众号自动推送课程表功能 为了实现微信公众号定期向用户推送课程安排,需掌握微信公众平台提供的模板消息服务。此服务允许开发者通过特定的消息模板向用户发送通知。 #### 获取必要的权限和参数 在调用微信API之前,确保已获取`access_token`,这是访问微信公众平台接口所需的凭证[^1]。该令牌用于验证身份并授权请求。 #### 创建自定义菜单引导关注者订阅课程提醒 可以创建一个带有按钮的自定义菜单,当用户点击时会触发事件,从而收集用户的同意来接收课程表更新的通知。这一步骤并非强制性的,但对于提高用户体验很有帮助。 #### 设置模板消息 进入微信公众平台后台,在“功能”-> “添加功能插件” 中找到“模板消息”,从中挑选适合展示课程信息的模板样式,并记录下所选模板ID。如果默认选项无法满足需求,则可以根据官方文档申请特殊行业模板或通用模板。 #### 编写Python脚本定时发送课程表 下面是一个简单的Python程序框架,它利用了`scheduled`库来进行周期性任务调度,并借助`requests`库完成HTTP POST请求: ```python import requests from datetime import datetime import time import json def get_access_token(appid, secret): url = f"https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={appid}&secret={secret}" response = requests.get(url).json() return response['access_token'] def send_template_message(access_token, openid, template_id, data_dict): url = "https://api.weixin.qq.com/cgi-bin/message/template/send" params = { 'touser': openid, 'template_id': template_id, 'data': data_dict } headers = {'Content-Type': 'application/json'} payload = json.dumps(params) r = requests.post( url=url+f"?access_token={access_token}", data=payload, headers=headers ) result = r.json() print(result) if __name__ == "__main__": appid = '' # 替换成自己的APP ID secret = '' # 替换成自己的App Secret access_token = get_access_token(appid, secret) while True: now_time = datetime.now().strftime("%H:%M") if now_time >= "08:00" and now_time <= "09:00": openids = [] # 用户列表 for user_openid in openids: course_data = {"first": {"value":"今日课表"}, "keyword1":{"value":"周一上午第一节"}, "keyword2":{"value":"计算机网络基础"}, "remark":{"value":"记得带课本哦~"}} send_template_message(access_token,user_openid,'TM00745',course_data) break time.sleep(60*60) # 每隔一小时检查一次时间条件是否成立 ``` 上述代码片段展示了如何构建一个基本的工作流程:先取得有效的`access_token`;接着按照设定的时间间隔遍历目标用户群体并向他们分发定制化的课程表详情。注意这里的循环逻辑是为了简化说明而设计的实际应用中应考虑更复杂的场景如多时段推送等。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值