New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
基于开放 API 封装 Wechaty 接口下的钉钉聊天机器人 #11
Comments
你好,我是福州大学的一名大三的学生,希望能参加这个项目。 |
@jihuayu 欢迎参与到这个项目中
消息类型确实是和微信是不同的,但是,本身 Wechaty 并不是局限于只做微信上的机器人,同时也希望能支持更多的平台来做机器人,并且希望能提供给用户一个轻松迁移自己机器人到各个平台上的能力。
这并不代表我们需要只做一个与 而且本质上,chatbot 最主要的内容还是文字,而且现在很多 Wechaty 的开发者开发的 chatbot 也大多是基于文字消息的,如果能够有这个钉钉机器人,可以很方便的让其他的开发者把自己做好的 Wechaty 机器人迁移到钉钉上了。 |
@windmemory 谢谢您的回答。 |
@jihuayu 是的。对于不支持的接口,可以在用户调用的时候抛出异常,表示此接口不支持即可。只要基础的文字消息收发能够支持,就可以给很多开发者带来帮助了 |
好的谢谢,我现在去申请这个项目。 |
[基于开放 API 封装 Wechaty 接口下的钉钉聊天机器人] 进度报告日期:07-18 本周完成的成果
本周遇到的困难和需要配合的地方
下周的开发计划和预计成果
其他需要说明和同步的事项
|
@jihuayu 很棒的进展,继续加油
这个也可以用函数内抛异常的方式暂时处理一下,如下: public async someFunctionThatIsNotImplemented (arg1: number, arg2: string) {
throw new Error(`someFunctionThatIsNotImplemented() not implemented. Args: ${arg1}, ${arg2}`)
} 这样可以避免一些
我这边没用过 除此之外,可以在命令行通过如下指令让eslint帮你自动格式化: eslint --fix --ignore-pattern node_modules/ "src/**/*.ts" 如果你的eslint没有安装在global环境里的话,可能你需要这个指令(这个要求你在本地开发目录里面安装了 ts-node ./node_modules/.bin/eslint --fix --ignore-pattern node_modules/ "src/**/*.ts" |
@windmemory |
空实现的一个小问题就是,当之后你的puppet已经逐渐成型,开始对接wechaty联调测试的时候,如果wechaty因为puppet某些接口没实现而导致了一些bug,空函数没办法很好的帮你定位到是哪个函数没实现而导致的,但是抛异常可以直接的告诉你是哪个函数,这个是写异常的优势~ 当然,前期工作量的话,挨个函数写异常确实会有点麻烦 |
@jihuayu Congratulations! It's a huge step that your puppet can run with Wechaty and passed our ding-dong-bot testing! I'm looking forward to seeing your alpha version, and can not wait for testing your DingTalk puppet by myself! |
[基于开放 API 封装 Wechaty 接口下的钉钉聊天机器人] 进度报告日期:07-26 本周完成的成果
现在支持使用更优雅的方式发送消息了。 import { PuppetDing } from '../src/mod'
const puppet = new PuppetDing({ robot:{ port:3000 } })
puppet.on('message', async i => {
const mes = await puppet.messagePayload(i.messageId)
if (/ping/gi.test(mes.text as string)) {
for (let i = 0; i < 30; i++) {
await puppet.messageSendText(mes.roomId as string, 'dong' + i)
}
}
}) 本周遇到的困难和需要配合的地方
下周的开发计划和预计成果
其他需要说明和同步的事项 |
I think it's time for you to join us discussing more message type support, here is the issue |
[基于开放 API 封装 Wechaty 接口下的钉钉聊天机器人] 进度报告日期:08-02 本周完成的成果
本周遇到的困难和需要配合的地方
下周的开发计划和预计成果
其他需要说明和同步的事项 |
[基于开放 API 封装 Wechaty 接口下的钉钉聊天机器人] 进度报告日期:08-09 本周完成的成果
本周遇到的困难和需要配合的地方
下周的开发计划和预计成果
其他需要说明和同步的事项
|
[基于开放 API 封装 Wechaty 接口下的钉钉聊天机器人] 进度报告日期:08-24 本周完成的成果
本周遇到的困难和需要配合的地方
下周的开发计划和预计成果
其他需要说明和同步的事项
|
[基于开放 API 封装 Wechaty 接口下的钉钉聊天机器人] 进度报告日期:09-01 本周完成的成果
本周遇到的困难和需要配合的地方
下周的开发计划和预计成果
其他需要说明和同步的事项 |
@jihuayu I have read your code today and may I ask you to write a good README so that the developers who are interested in this project cloud read more docs of this repo? |
@rickyyin98 Thanks for the mentoring! @jihuayu Thank you very much for joining the Wechaty open source project and finished Summer 2020 successfully! |
此次活动
开源软件供应链点亮计划
“开源软件供应链点亮计划-暑期2020”(以下简称 暑期2020)是由中科院软件所与 openEuler 社区共同举办的一项面向高校学生的暑期活动,旨在鼓励在校学生积极参与开源软件的开发维护,促进国内优秀开源软件社区的蓬勃发展。
根据项目的难易程度和完成情况,参与者还可获取“开源软件供应链点亮计划-暑期2020”活动奖金和奖杯。
官网:https://isrc.iscas.ac.cn/summer2020 官方新闻:http://www.iscas.ac.cn/xshd2016/xshy2016/202004/t20200426_5563484.html
Wechaty
Wechaty 是一个开源聊天机器人框架SDK,具有高度封装、高可用的特性,支持NodeJs, Python, Go 和Java 等多语言版本。在过去的4年中,服务了数万名开发者,收获了 Github 的 8000 Star。同时配置了完整的DevOps体系并持续按照Apache 的方式管理技术社区。
基于开放 API 封装 Wechaty 接口下的钉钉聊天机器人
需求介绍
钉钉提供开放的API接口,有基于开放API开发聊天机器人的需求
钉钉(DingTalk)是阿里巴巴集团专为中国企业打造的免费沟通和协同的多端平台,提供PC版、Web版和手机版。它开放了丰富的服务端接口能力,如企业通讯录管理、发送企业会话消息等功能。开发者可以借助这些接口能力,实现与钉钉集成打通的Chatbot。
钉钉的群机器人支持收发消息,且搭建了比较完善的Chatbot市场。
Wechaty是全球最大的开源聊天机器人框架,希望实现基于同一套应用层代码实现不同软件的聊天机器人
Wechaty 作为全球最大的聊天机器人开发者社区之一,提供了非常简单的接口实现,让开发者能够用6行代码就实现自己的一个聊天机器人,如果能把钉钉的聊天机器人封装到 Wechaty 里来,则可以大大简化企业内开发者的开发流程。
因为 Wechaty 是建立在 puppet 系统之上的,puppet 是 Wechaty 依赖的一层抽象层,它定义了底层各个 IM 接入方案需要实现的接口,也正是因为 puppet 抽象层的存在,让很多 Wechaty 开发者可以仅仅通过一个变量,就能够随意切换不同的底层 IM 接入。
项目难度
高(奖金:12000元)
导师联系方式
项目产出目标
核心目标
钉钉 puppet
项目技术栈
相关资料
Link to #3 (Wechaty 社区暑期2020项目单)
The text was updated successfully, but these errors were encountered: