企微外部群主动推送消息的完整逻辑实现

10 阅读3分钟

QiWe开放平台 · 个人名片

API驱动企微自动化,让开发更高效

        核心能力:API 驱动企微自动化,提升开发效率

        官方站点:www.qiweapi.com

        对接通道:进入官方站点联系客服

        团队定位:企微生态深度服务,专注 API+RPA 融合技术方案

01. 教育私域的推送痛点

教育行业的外部群(家长群/班级群)通常由助教管理,手动维护成本极高:

  • 提醒不及时:助教忙碌时,容易错过开课前 15 分钟的黄金提醒期。
  • 数据断层:打卡数据在小程序里,但催促提醒却要在企微群里人工发送。
  • 个性化缺失:不同班级进度不同,统一群发会导致信息骚扰。

02. “教务系统 + 企微 API”的自动化闭环

我们需要建立一套以**课表(Schedule)**为驱动的推送引擎。

推送场景触发逻辑推荐格式
开课预热开课前 24 小时 / 1 小时Markdown(含课程大纲、直播链接)
临门一脚开课前 15 分钟Text + @全员(确保强提醒)
作业布置课后 30 分钟图文卡片(作业要求 + 提交入口)
打卡催促截止前 2 小时(针对未完成者)Markdown(名单公示 + 鼓励话术)

03. 核心代码实现:基于 Cron 表达式的动态课表引擎 (Java)

在教育场景下,我们需要能够动态解析课表并生成定时任务。

Java

@Service
public class EducationPushService {

    // 模拟每分钟扫描一次教务系统课表
    @Scheduled(cron = "0 * * * * ?")
    public void scanCourseSchedule() {
        LocalDateTime now = LocalDateTime.now();
        // 查询 15 分钟后即将开始的课程
        List<Course> upcomingCourses = courseRepo.findByStartTime(now.plusMinutes(15));

        for (Course course : upcomingCourses) {
            String content = String.format(
                "### 🔔 上课提醒:[%s]\n" +
                "> 讲师:<font color="info">%s</font>\n" +
                "> 时间:%s\n\n" +
                "请各位同学准备好教材,准时进入直播间:[点击进入](%s)",
                course.getName(), course.getTeacher(), course.getStartTimeStr(), course.getUrl()
            );
            
            // 调用企微推送接口
            qywxPusher.sendMarkdown(course.getChatId(), content);
        }
    }
}

04. 进阶实战:如何实现“作业打卡”名单公示?

这是教育运营中最能激发家长积极性的功能:自动公示已打卡/未打卡名单

  1. 数据抓取:通过打卡小程序的 API 获取当前已提交作业的 unionid 列表。
  2. 差集计算:将群成员列表与已提交列表做差集,得出“待打卡名单”。
  3. 动态排版:利用 Markdown 的引用格式进行视觉区分。

Python

# Python 逻辑示例:作业打卡公示
def push_homework_status(chat_id, homework_id):
    all_students = get_group_members(chat_id)
    submitted_students = get_homework_submissions(homework_id)
    
    pending_list = [s for s in all_students if s['id'] not in submitted_students]
    
    if not pending_list:
        content = "🎉 太棒了!本班级作业已全部上交,大家辛苦了!"
    else:
        names = "、".join([f"@{s['name']}" for s in pending_list])
        content = f"### 📝 作业打卡进度\n> 已交:{len(submitted_students)}人\n> 待交:{len(pending_list)}人\n\n温馨提醒以下同学记得提交哦:\n{names}"
    
    send_to_wechat(chat_id, content)

05. 专家级细节调优

  • 静默时间设置:系统应具备“防打扰模式”。例如,晚 22:00 后的打卡提醒应自动延时到次日 8:00。
  • 多群权重控制:针对核心付费班级和免费试听班级,设置不同的推送频率上限。
  • 链接自动转换:推送的课程链接建议经过中转域名,以便记录每个群的点击转化率(CTR),作为教学质量考评的依据。

💡 结语

教育行业的自动化推送,其核心在于温度与效率的平衡。通过 API 将沉睡在教务系统里的课表和打卡数据激活,能让助教从繁琐的通知中解放出来,去处理更有价值的教学互动。