前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >飞书机器人项目来了

飞书机器人项目来了

作者头像
程序员的园
发布2025-01-16 10:26:26
发布2025-01-16 10:26:26
1150
举报

25、26、27届校招的朋友们,大战在即,你是不是也正苦恼没有一个像样的项目?别担心,近期我将更新几个开源硬核项目,助你一臂之力。从0到1,无论是练手还是实战,小白还是有点基础的都适用。

今天,为大家介绍第一个项目——飞书机器人。飞书整个大平台生态很强大,毕竟是接近十万人的大团队加班加点研发出来的,能力相当的丰富。

背景

我们用到的也只是冰山一角,其实飞书机器人可以做很多事情,比如:

  • 记账机器人:帮助你整理每月支出和收入。
  • 任务提醒:提醒你每天完成哪些任务,比如提醒你每天刷算法题,刷哪些题。
  • 知识库问答机器人:接入agent智能体,你提问什么问题,它会根据知识库内容给你解答。
  • 指令处理:类似于支持不同参数的命令行工具,只是这个工具迁移到了飞书机器人中。
  • 日记功能:有任何随笔都可以发给飞书机器人,它帮你登记在文档中。
  • 与gitlab联动:与编程相关,比如你有MR提交或者comment,飞书机器人都会做提醒。

那我们的机器人需要具备哪些能力呢?在我们训练营学习群里,可以看到,我们的飞书机器人一个主要的能力就是监督提醒大家学习,确保不漏掉任何一位同学,会早晨提醒学习,也会晚上提醒提交代码。并且有好的学习资料更新,也会通过机器人广播给所有学员。

本项目我们会主要带着大家实现这几个功能,通过这几个功能的实现,你可以:

  1. 掌握C++的编程技巧,提升C++的编码能力
  2. 还可以顺便熟悉飞书的开放平台,这对你的职业生涯绝对是有帮助的
  3. 通过飞书机器人实现一些有用的功能,肯定可以为你的工作提效,甚至为你的整个团队提效。

介绍

目标是通过本项目,帮助大家掌握这些技术的灵活运用。

整个系统的架构设计

项目肯定会越来越大,在最初我们就应该尽可能的考虑好如何匹配大多数需求。

  • 明确每个模块的作用
  • 明确不同模块间如何通信

MySQL数据库的使用

学员的信息存储在哪里?我们肯定要按固定的结构存储在数据库中,这里我们选用最通用的MySQL数据库,但不使用它最常用的关系数据库形式,而是使用它的document collection模式。

Redis缓存的使用

频繁操作MySQL数据库会带来很大的IO压力,一般都会在中间加一个Redis缓存层,这里我们不仅是使用它做缓存,还会利用它的TTL的map能力,来避免某个时间窗口内重复的处理请求。

server开发,如何接收HTTP网络请求

我们会给机器人发送指令,机器人如何处理这些HTTP请求,肯定需要起一个HTTP的server,这里会涉及到如何启用HTTP server

client开发,如何发送HTTP网络请求

我们需要与飞书开发平台通信,需要向飞书开放平台发送HTTP网络请求,这里会涉及到如何在C++中发送HTTP client网络请求。

熟悉飞书开放平台

飞书现在是非常流行的办公IM通信工具,很多公司都会使用飞书作为内部IM工具。

或者可以这样说,你的工作生涯中,大概率会用到飞书,所以熟悉飞书开放平台是很有必要的,利用飞书开放平台将飞书机器人集成到飞书应用中,可以极大的提高我们的工作效率。

如果你在企业中,能够在你的工作群中集成这样一个机器人,提高整个团队的工作效率,肯定可以让你更出彩。

如何与飞书机器人通信,实现自定义的功能需求

这里其实就是后端的业务需求处理了,比如:

  • 如何注册学员?
  • 如何在早上定时通知每个群里的学员学习?并列出对应学员的学习计划?
  • 如何在晚上定时通知每个群里的学员提交代码?

相关知识点

在做项目的过程中,我们会接触到很多相关的知识点,主要有:

  • C、C++基础知识
  • 新特性
    • 智能指针
    • optional
    • regex
  • C++中如何使用MySQL数据库
  • C++中如何使用Redis缓存
  • 时间chrono相关操作
  • 日志系统
  • Json
  • HTTP、HTTPS Server & Client
  • 并发编程
  • EventLoop
  • 定时器
  • 等等
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-01-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员的园 微信公众号,前往查看

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • 介绍
    • 整个系统的架构设计
    • MySQL数据库的使用
    • Redis缓存的使用
    • server开发,如何接收HTTP网络请求
    • client开发,如何发送HTTP网络请求
    • 熟悉飞书开放平台
    • 如何与飞书机器人通信,实现自定义的功能需求
    • 相关知识点
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档