注册一个微信公众号可以做什么呢?
其实可以做很多事情,比如使用微信公众平台的对接我们自己开发的小助手等功能。
1. 微信公众号
主要介绍微信公众号的注册方式!
注册一个 微信公众号,个人也可以注册,只是无法认证。但是,如果是认证的企业微信,还需要一个对应主体备案的域名(很麻烦)。所以,如果个人使用的推荐不认证。
2. 接入应用
我们自己的影视更新推送服务需要获取微信公众号的一些配置信息!
这些配置需要和 微信公众号后台 中的保持一致,进入页面后,在左侧菜单选择:设置与开发 -> 开发接口管理 -> 基本配置 -> 服务器配置,按下图进行配置:
在公众号后台启用服务器配置并提交,如果保存成功则表示已经成功配置。注意 “服务器地址(URL)” 这一项需要配置为 http://{HOST}/wx
的格式,其中 {HOST}
可以是服务器的 IP
或域名。
3. 测试账号
如果是个人公众号的话,无法使用推送功能,测试账号不错的。
使用微信扫码,申请 公众号测试账户 来测试企业公众号的全部功能。进入页面以后,我们来获取如下代码所需信息,以备后续使用。
要使用公众号模板消息或订阅消息主动推送的话,需要获取以下两个关键参数:即关注你公众号用户的 OpenID,以及需要发送的 template_id 模版。
含义解释:touser
是用户的 OpenID,表示你要推送消息的目标用户。如何获取:需要让用户 关注你的公众号 并与你产生交互(例如发送一条消息),然后你可以通过微信的消息推送或用户列表 API 获取 OpenID
。
# 方式一:从用户发给你消息中提取
# 用户发送消息给公众号时,微信会把POST请求发给你的服务器(获取OpenID)
msg = parse_message(request.data)
touser = msg.source # 用户的OpenID
# 方式二:用access_token获取所有关注用户的列表
client = WeChatClient(APPID, APPSECRET)
users = client.user.get_followers()
print(users['data']['openid']) # 列表
含义解释:template_id
是你在公众号后台申请的模板消息的 唯一标识。如何获取:登录 微信公众平台,点击左侧菜单「模板消息」或「订阅消息」,选择已有模板或申请新的模板,模板名称右侧会显示其 template_id
,复制下来使用。
from wechatpy import WeChatClient
APPID = "你的appid"
APPSECRET = "你的secret"
client = WeChatClient(APPID, APPSECRET)
data = {
"first": {"value": "您好,您有一条提醒!"},
"keyword1": {"value": "订单已发货"},
"keyword2": {"value": "2024-05-09"},
"remark": {"value": "感谢您的支持。"}
}
res = client.message.send_template(
user_id="用户的openid",
template_id="你的template_id",
data=data,
url="https://yourdomain.com/order"
)
print(res)
4. 服务部署
这里部署,我们自己影视更新推送服务!
公众号目前,只支持 服务器 和 docker 环境部署。我们这里只说下微信公众号的推送认证逻辑,后续可以使用类似于 WeChatPY 这样的封装好的接口,更方便一些。具体更多功能,可以参考微信官方接口文档,或者上述库文档。
1. 验证服务器地址:微信后台将发起 GET 请求验证你的 Token
和 URL
;2. 处理消息:用户发送消息,微信会 POST 数据到你配置的 URL;3. 发送响应:你需要返回 XML 响应或调用微信接口主动发送;4. 接入高级功能:如自定义菜单、客服、素材管理等,通过 access_token 接口调用。
1. 获取微信 access_token -> 认证校验
url = "https://api.weixin.qq.com/cgi-bin/token"
params = {
"grant_type": "client_credential",
"appid": self.app_id, # 测试号信息
"secret": self.app_secret, # 测试号信息
}
2. 构建通知内容 -> 推送模版
message = {
"touser": openid,
"template_id": self.template_id,
"url": "https://www.xxx.org", # 点击消息跳转的链接
"data": {
"update_title": {"value": update_title},
"update_lens": {"value": update_lens},
"update_text": {"value": update_text},
"update_time": {"value": update_time},
"update_remark": {"value": update_remark},
},
}
3. 发送模板消息 -> 发送指定客户
url = f"https://api.weixin.qq.com/cgi-bin/message/template/send?access_token={access_token}"
with httpx.Client(timeout=10) as client:
response = client.post(url, json=message_content)
5. 微信使用
使用微信扫码关注,即可开启推送了!
这里我们使用自己的企业微信公众号,或者测试的企业微信公众号。