Skip to content
This repository has been archived by the owner on Feb 17, 2021. It is now read-only.
/ covid-report-notify Public archive

【因学校换平台而废弃】基于公众号的疫情打卡提醒服务

License

Notifications You must be signed in to change notification settings

OrdosX/covid-report-notify

Repository files navigation

covid-report-notify

基于公众号的疫情打卡提醒服务

导语

随着常态化疫情防控逐步推进,每日打卡的重要性日益凸显。为了避免忘记打卡造成不必要的麻烦,我依托微信公众号成熟的消息交互接口与模板消息机制,设计出一个疫情打卡提醒服务。经过多次的迭代升级,这个稳定、易用的提醒服务已经能够满足日常提醒的需求。

功能介绍

  • 关注后自动发送欢迎信息和示例提醒

  • 回复“启用提醒”之后,每天9:30会发送一条提醒

  • 点击提醒卡片附带的链接可以直接进入打卡页面

  • 回复“关闭提醒”即可取消定时提醒

  • 回复其他内容则发送帮助信息

实现方法简介

准备材料

  • 一个域名(如我的ordosx.tech)
  • 一台绑定到该域名的服务器(本地或云端皆可,要求一直开机)
  • 相应的服务端脚本程序
  • 一个测试公众号(登录 http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login 自动注册)
    • 在设置中填写服务器的URL
    • 在设置中填写打卡提醒的模板消息文案

核心流程

  1. 用户回复“启用提醒”消息;
  2. 微信服务器将用户的OpenID与消息内容等信息通过HTTP POST方法发送到预先设置的域名下,也就是发送给开发者的服务器;
  3. 开发者的服务器将OpenID加入提醒列表,并设置定时任务;
  4. 开发者的服务器向微信服务器发送包含“成功启用”的回复信息;
  5. 微信服务器将信息发送给用户;
  6. 在下一个上午9:30,计划任务启动;
  7. 开发者的服务器获取预先设定好的模板消息的TemplateID,并将其与用户们的OpenID、学校打卡平台的网址等信息一起发给微信服务器;
  8. 微信服务器处理这些信息,并将卡片呈现给用户。

Q&A

Q:为什么公众号名字取得这么朴实?

A:正式的公众号中,只有账号主体为企业的服务号才有权限主动发送模板消息,所以班级公众号(一般是主体为个人的订阅号)是无法搭建这个服务的。而用于编程调试的测试号能使用所有接口,所以选择基于测试号搭建这一服务。

Q:别的公众号都在求关注,为什么这个服务要“及时取关”?

虽然测试号能使用所有接口,其关注者上限却只有100人,如果只是尝试一下却没有及时取消关注,一旦关注人数满了就会影响新同学的加入。

Q:关注人数满了,但我还想使用,怎么办?

每个人都可以免费注册一个编程测试号。如果你足够信任黄泽源(作者),可以登录 https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login 注册一个测试号并将appid和appsecret提供给我,我将把你的账号接入本平台,并在征得你的同意的情况下让这个测试公众号服务更多的同学。

长按图片,扫码体验!

About

【因学校换平台而废弃】基于公众号的疫情打卡提醒服务

Topics

Resources

License

Stars

Watchers

Forks