-
申请 5G 开发者权限、应用调试工具。
-
配置系统环境变量。
WECHATY_PUPPET_WALNUT_APPID
: Chatbot的AppId。WECHATY_PUPPET_WALNUT_APPKEY
:Chatbot的AppKey。WECHATY_PUPPET_WALNUT_SIPID
: Chatbot的sipId。WECHATY_PUPPET
:wechaty-puppet-walnut
-
配置公网环境
如果是本地调试,则需要将在申请 5G 开发者时填入的公网地址,映射到本地才可以监听到
chatbot
接收到的消息这里推荐使用 Frp,来进行端口的映射。Walnut本身集成的 sever 端口默认为 3000,将公网地址映射到本地即可
npm install wechaty
npm install wechaty-puppet-walnut
import { WechatyBuilder } from 'wechaty'
WechatyBuilder.build() // get a Wechaty instance
.on('message', message => console.log(`Message: ${message}`))
.start()
Learn more for building your first Wechaty bot at https://github.com/wechaty/, https://github.com/wechaty/getting-started
消息类型 | 从属(根据接口返回) | api | 接收 | 发送 | 群聊 |
---|---|---|---|---|---|
文本 | text |
message.text |
✅ | ✅ | ❌ |
图片 | image |
message.toImage() |
✅ | ✅ | ❌ |
视频 | video |
message.toFilebox() |
✅ | ❌ | ❌ |
音频 | audio |
message.toFilebox() |
✅ | ❌ | ❌ |
位置 | location |
message.toLocation() |
❌ | ❌ | ❌ |
文件 | other |
message.toFilebox() |
✅ | ❌ | ❌ |
联系人 | other |
message.toContact() |
✅ | ❌ | ❌ |
-
Name Type Description Support Details id string
Get Contact id. This function is depending on the Puppet Implementation, see puppet-compatible-table ✅ Phone number -
Instance Methods Return type Support Details say(text Or Contact Or File) Promise
✅ ⚠Contact not Support name() String
✅ Phone number alias(newAlias) Promise
✅ friend() Boolean or null
✅ True type() ContactType.Unknown or ContactType.Personal or ContactType.Official
✅ ContactType.Personal gender() ContactGender.Unknown or ContactGender.Male or ContactGender.Female
✅ ContactGender.Unknown province() String or null
❌ city() String or null
❌ avatar() Promise
✅ Default avatar sync() Promise
✅ self() Boolean
✅ Default avatar 👉 https://raw.githubusercontent.com/wechaty/puppet-walnut/main/docs/images/avatar.webp
-
Static Methods Return Type Support Detail find(query) Promise <Contact | null>
✅ findAll(Query Arguements) Promise <Contact []>
✅
-
Instance methods Return type Support Detail talker() Contact
ornull
✅ to() Contact
ornull
✅ room() Room
ornull
✅ null text() string
✅ say(text Or Contact Or File) Promise
✅ ⚠Contact not Support type() MessageType
✅ Message.Text self() boolean
✅ mention() Promise
❌ mentionSelf() Promise
❌ forward(to) Promise
✅ date() Date
✅ age() Number
✅ toFileBox() Promise
✅ toContact() Promise
❌ toUrlLink() Promise
✅ -
Static Methods Return type Support Detail find() Promise
✅ findAll() Promise
✅
“开源软件供应链点亮计划-暑期2021”(以下简称 暑期2021)是由中科院软件所与 openEuler 社区共同举办的一项面向高校学生的暑期活动,旨在鼓励在校学生积极参与开源软件的开发维护,促进国内优秀开源软件社区的蓬勃发展。
根据项目的难易程度和完成情况,参与者还可获取“开源软件供应链点亮计划-暑期2021”活动奖金和奖杯。
Wechaty 是一个开源聊天机器人框架SDK,具有高度封装、高可用的特性,支持NodeJs, Python, Go 和Java 等多语言版本。在过去的5年中,服务了数万名开发者,收获了 Github 的 9600 Star。同时配置了完整的DevOps体系并持续按照Apache 的方式管理技术社区。
开发支持电信运营商 5G Chatbot / RCS 的 Wechaty 接入 Puppet 模块
Wechaty 社区目前已经支持微信、Whatsapp、企业微信、飞书等常见流行即时通讯工具,并且能够通过多语言 SDK (比如 Python Wechaty) 进行调用。
5G Chatbot (RCS) 是近期中国电信运营商基于 5G 的消息战略落地平台,未来的 5G 手机将会内置 RCS 消息的处理能力。我们在本次 Summer 2021 的项目中,Wechaty 希望可以实现对RCS Chatbot 的支持。可以将 RCS 协议封装成为 wechaty-puppet-walnut
供 Wechaty 开发者方便接入 RCS 平台,使其成为 Wechaty 可以使用的社区生态模块。
使用 https://github.com/wechaty/wechaty-puppet-official-account 项目作为模版,将核心代码文件 https://github.com/wechaty/wechaty-puppet-official-account/blob/master/src/puppet-oa.ts 中的微信公众平台调用,全部替换(封装)为 RCS 模块的调用。
这里有一个专门讲解如何开发 Wechaty Puppet Provider 的 workshop 视频,它以 wechaty-puppet-official-account
作为例子,做了从0到1的入门讲解:Wechaty Workshop for Puppet Makers: How to make a Puppet for Wechaty。通过观看这一个小时的视频,应该可以系统性的了解如何完成构建一个 Wechaty Puppet Provider 模块。
在初期开发中,能够实现文本消息的接收和发送,即可完成原型验证 POC 。
还可以参考以下链接:
- TypeScript Puppet Official Documentation: https://wechaty.github.io/wechaty-puppet/typedoc/classes/puppet.html
- Wechaty Puppet Specification: https://wechaty.js.org/docs/specs/puppet
- https://github.com/wechaty/wechaty-puppet-mock
- 李佳芮: Wechaty co-creator, Founder & CEO of Juzi.BOT (rui@chatie.io)
- 康嘉: 硬核桃社区https://www.5g-msg.com/ PM
- 李卓桓:Wechaty creator, Tencent TVP of Chatbot (huan@chatie.io)
- TypeScript programming language
- Git
- REST Api
- 5G Chatbot / Rich Communication Service
- 硬核桃社区 5G Chatbot SDK https://www.5g-msg.com/#/bussinessInformation
- 开源软件供应链点亮计划-暑期2021 - 支持电信运营商 5G Chatbot / RCS 项目
- 支持5G消息的 puppet-walnut 接入介绍
- 中国电信-中国联通 5G 消息业务平台行业客户接入接口技术规范 V1.0.4
- Adapt to Wechaty v1.11
Initial version.
- Huan LI (李卓桓), Tencent TVP of Chatbot, <zixia@zixia.net>
- Code & Docs © 2018 Huan LI <zixia@zixia.net>
- Code released under the Apache-2.0 License
- Docs released under Creative Commons