Giter VIP home page Giter VIP logo

corpwechat-bot's Introduction

👋 corpwechat-bot是一个python封装的企业机器人&应用消息推送库,通过企业微信提供的api实现。

利用本库,你可以轻松地实现从服务器端发送一条文本、图片、视频、markdown等等消息到你的微信手机端,而不依赖于其他的第三方应用,如ServerChan

如果喜欢该项目,记得给个star,让更多人能够看到本项目♥️

为什么要使用corpwechat-bot? `corpwechat-bot`的定位是让用户随时随地了解服务器端程序的运行结果,同类型的方法有很多,例如邮件,钉钉(这两个的消息推送我在我的另一个库[cptools](https://github.com/GentleCP/cptools)中实现了,有兴趣的可以去看看),bark等。但对于一般人来说,最方便的接收方式还是微信,但个人微信并不提供给开发者API(以前可以用网页微信,现在被禁了)。 拥有同样功能比较知名的有:`ServerChan`,之前提供公众号模板消息推送,但由于微信官方原因,在`21年4月底下线`,因此推出了`Turbo`版,支持企业微信消息推送。我在使用过之后发现几个主要问题:raising_hand:,并与`corpwechat-bot`进行了对比:s

注意:ServerChan已推出可自己部署的开源版,以下对比均为商业版ServerChan

对比项 ServerChan corpwechat-bot
消息推送限制 😥 普通用户消息推送次数限制(每天5次,会员不限) ☺️corpwechat-bot直接和企业微信对接,消息发送仅受微信官方限制(每分钟20条)
个人信息安全性 😩 个人企业号、应用id和密钥由ServerChan云端存储,所有发送的消息也经过ServerChan转发(先到ServerChan后台,再由ServerChan发送到微信) 😇 corpwechat-bot本身不存储任何用户的密钥(由用户本地保存),所有消息也是直接发送到企业微信后台,保证数据安全性
创建、使用便捷性 😣 主要使用步骤:
1. 用户注册企业微信
2. 创建ServerChan应用
3. 提交企业号、应用id、应用密钥到ServerChan,获取sendKey
4. 利用sendKey发送http请求到指定url完成消息发送
😉 主要使用步骤:​
1. 用户注册企业微信
2. 创建个人消息推送应用,获取相应密钥
3. 一条命令pip install -U corpwechatbot安装
4. 利用corpwechatbot的消息发送接口发送消息
消息类型支持 😔 仅支持title+description(支持markdown)的消息发送格式​ 😋 支持文本、markdown,图片、语音、视频、文件、卡片等多个企业微信提供的消息类型​
开源 😢 ​不开源,所有代码均由ServerChan自身管控 😎 开源在Github​,任何人可以依据源代码添加定制自己想要的功能,或贡献自己的一份力到开源项目中

特别说明:虽然上面的对比偏向于突出corpwechat-bot的优势,但并没有刻意贬低ServerChan的意思,作为一个公开的服务,ServerChan的这些特性都是可以被接受的,同时ServerChan也是一款非常优秀的消息推送工具(我之前一直在使用),支持各大类型的消息推送接口(企业微信、钉钉、bark等等),但考虑到上面的几个特性,所以我选择了自己定制并开源了corpwechat-bot,希望给和我一样想法的用户多一份选择,未来corpwechat-bot还会添加更多的功能和特性,详情查看Todo,当然你也可以在issue中提出你的合理需求,或提交PR来帮助corpwechat-bot做的更好!!!

ToC

QuickStart

QuickStart能够让你在最快的时间内上手corpwechatbot,跳过较为繁杂的参数步骤,但如果你希望能更好地使用corpwechatbot,请查看Usage

Features

目前实现了两种推送消息方式和,应用消息推送群聊机器人消息推送应用交互(开发测试版),并且在此基础上,添加了终端一条命令式上述两种消息的推送,具体如下:

应用消息推送: 该推送会直接传至你的个人微信上,你会像收到好友消息一样收到通知信息,不需要安装企业微信
  • 文本消息: 最普通的消息,文字内容,最长不超过2048个字节
  • 图片消息:发送一张图片,可选jpg,png,大小不超过2MB,目前仅支持通过图片路径发送
  • 语音消息:发送一条语音,大小不超过2MB,时长不超过60s,必须是.amr格式
  • 视频消息:发送一段视频,大小不超过10MB,必须是.mp4格式
  • 普通文件:其他类型的文件,大小不超过20MB(不小于5字节)
  • markdown消息:传输markdown类型消息
  • 图文消息:图片文字形式,带有跳转链接,适合做推广
  • mpnews图文消息:有专属页面的图文消息,支持html标签内容
  • 文本卡片消息:以卡片形式呈现的文本,包含跳转链接
  • 任务卡片消息:应用与用户交互的卡片,需要配置回调

  • 群聊机器人消息推送: 该推送仅会发送消息到企业微信群聊中,经测试,个人微信的企业群聊不会收到机器人发送的消息,因此要收到消息需安装企业微信
  • 文本消息:普通文字消息,最长不超过2048个字节
  • 图片消息:图片大小不超过2M
  • 图文消息:图片文字形式,带有跳转链接,适合打广告
  • 文件消息:发送单个文件到群聊,大小在5B~20MB之间

  • 终端一条命令式消息推送直接在终端发送消息,仅支持文本与markdown
  • 具体参考Usage
    • 新增回调配置功能:具体查看Usage

    Usage

    ⚠️ 当第一种安装方式失效时,请尝试第二种

    • 安装
    pip install -U corpwechatbot

    或者

    git clone https://github.com/GentleCP/corpwechat-bot.git
    cd corpwechat-bot
    pip install .
    • 使用

    点此查看详细使用教程

    ChangeLog

    你可以在ChangeLog中查看最新版本提交的功能和bug修复信息,点此查看ChangeLog

    Todo

    Finished

    已完成的开发任务,你可以在ChangeLog中查看更详细的完成情况

    • fix:token存储位置修改,初始设置保存到本地site-packages(后期将其移到site-packages/corpwechatbot目录下,方便统一)
    • docs:readme和usage更新
    • feat:终端快捷使用,一行命令式消息发送,例如corpwechatbot -s "hello world"直接发送一条文本消息
    • refactor:核心代码优化与重构
    • docs : 添加QuickStart
    • feat:允许将企业微信配置信息存储到本地文件读取
    • fix: 修复在指定标签和部门后依然默认发送给全体成员的问题
    • feat: 支持多个第三方应用消息推送
    • feat: 添加对mpnews的发送支持
    • feat: 添加对taskcard的发送支持
    • feat: 添加回调配置功能,该功能用以支持更丰富的使用场景,如
      • 用户发送消息给应用,识别关键词,返回不同的消息内容

      • 用户点击应用菜单,转换为相应指令,执行自动化任务,接收任务卡片消息,根据卡片内容,用户可选择在移动端点击反馈

      • 服务端(你的服务器)与移动端(你的微信&企业微信)实现更amazing的交互模式(💯如聊天机器人)

        该功能的基础原型已经完成,可在回调配置中查看,但还有待改进和测试的空间,暂未发布版本,可在最新代码仓库中尝试使用

    Development Schedule

    排在前面的会优先考虑开发

    • 对群聊应用消息推送的支持

    • 除文本消息和任务卡片消息以外的其他被动消息回复支持

    • 完善web部分的内容

      • 针对被动回复消息的error 进行处理
      • 优化代码和注释

    Author

    @GentleCP

    License

    本项目遵守GPL v3开源协议

    Sponsor

    本项目完全出于公益性质开源使用,作者独自完成开发测试等一系列工作,如果它帮到了你,解决了你的痛点需求,你可以请作者喝杯阔乐,或者给这个项目一个star(右上角),激励作者继续更新完善本项目,非常感谢🙏

    corpwechat-bot's People

    Contributors

    gentlecp avatar

    Recommend Projects

    • React photo React

      A declarative, efficient, and flexible JavaScript library for building user interfaces.

    • Vue.js photo Vue.js

      🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

    • Typescript photo Typescript

      TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

    • TensorFlow photo TensorFlow

      An Open Source Machine Learning Framework for Everyone

    • Django photo Django

      The Web framework for perfectionists with deadlines.

    • D3 photo D3

      Bring data to life with SVG, Canvas and HTML. 📊📈🎉

    Recommend Topics

    • javascript

      JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

    • web

      Some thing interesting about web. New door for the world.

    • server

      A server is a program made to process requests and deliver data to clients.

    • Machine learning

      Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

    • Game

      Some thing interesting about game, make everyone happy.

    Recommend Org

    • Facebook photo Facebook

      We are working to build community through open source technology. NB: members must have two-factor auth.

    • Microsoft photo Microsoft

      Open source projects and samples from Microsoft.

    • Google photo Google

      Google ❤️ Open Source for everyone.

    • D3 photo D3

      Data-Driven Documents codes.