-
Notifications
You must be signed in to change notification settings - Fork 21
JuziBot: Hey You
此文档为添加Wechaty开源框架的运营机器人 JuziBot 的流程。
如果你是JuziBot的老用户,请直接阅读老用户指南
除了一些常见问题的自动回复,拉群等功能,运营人员也会在每周一至周五的17:00-19:00间,人工审核开源激励计划的申请,发放token。
期待着与你一起做出好玩、有用的聊天机器人。
你好!这里是Wechaty开源框架的运营机器人。 我们提供一整套微信机器人的解决方案,帮助你用最短6行代码就能快速部署你自己的微信机器人。
通过更换Token(切换不同底层协议的令牌),可以实现用电脑端模拟 Web 、iPad、Mac 登录微信并自动收发消息的效果。
基于微信 Web 端的微信机器人我们已在 Github 全部开源,Web协议不能使用则需要申请其他协议Token。
请务必反复阅读我们的Wiki,Wechaty 的 API 中英文文档、各个项目链接、多个协议的使用说明、Web协议不能使用情况下如何申请其他协议Token等内容均在其中:https://github.com/juzibot/Welcome/wiki/Everything-about-Wechaty
回复【Wechaty】进入我们的 Wechaty 开发者社群。
回复【开源】进入开源激励计划2.0审核流程,我们将为Wechaty社区的Contributor提供长期可用的免费Token。
回复【付费】进入购买流程。
回复【老用户】进入快捷续费或核心开发者延长Token使用时间流程。
很高兴能再次为你提供服务。
如果你是【之前购买过 Token 的老用户】,请尽可能多地提供姓名、手机号、公司名、完整Token字符串等信息,帮助我们尽快查找到你的数据;以及介绍你的购买需求,我们将最快地为你提供对应 Token。
如果你是【开源激励计划覆盖的开发者】,请尽可能多地提供姓名、手机号、公司名、完整Token字符串、博客地址或为Wechaty社区做出的贡献等信息,帮助我们尽快查找到你的数据;我们将最快地为你提供 Token 时长。
出于开发成本、服务器成本、运维成本的考虑,Wechaty 非 Web 版 Token 需要付费使用,可以保证长期稳定使用,价格为200元/月/Token。
Wechaty 同时推出【开源激励计划2.0】,如果开发者能够为Wechaty社区贡献代码成为Contributor,我们愿意长期提供免费 Token 供开发者使用。
具体而言,Wechaty 开放了多场景、多平台、多语言、多功能四个核心命题,欢迎开发者通过撰写一篇博客、封装一个插件等方式成为Wechaty社区的Contribuor。
如果你愿意为Wechaty社区贡献代码,请完整填写表单,并列出你想要进行的开发项目和关键成果,我们将在每周一至周五17:00进行当天申请的审核,如果你在19:00后依然没有收到我们的审核通知,请再次发送申请或提问。
如果你觉得精力有限,可以直接回复【付费】进入直接购买 Token 流程。
已收到你的开源激励计划Token申请,非常感谢您的申请,期待着与你一起做出好玩、有用的聊天机器人。
依照你所提交的任务详情,我们将为你提供15天有效期的试用 Token,以支持你提交 MVP 代码并成为 Wechaty Contributor。
Juzibot 提供 5 * 10 小时在线服务,周一至周五(国家法定节假日除外),10:00-20:00
- 添加
juzibot
为微信好友,成功填写开源激励计划申请表和项目信息的开发者,即可领取 15 天免费 Token 用于 MVP 版本开发。 - 15天内,提交到 wechaty 的任何一个项目下的 pull request 被 merge 即可成为 wechaty 的 contributor,可以领取对应时长的 Token。最简单的方式是在 wechaty 的博客项目下发表一篇博客,博客项目地址: https://github.com/wechaty/wechaty.js.org
在wechaty(wechaty.js.org)博客审核通过后,每在一个平台(知乎/简书/掘金等)提交一篇博客,Wechaty 社区额外提供3个月有效期 Token,凭博客链接联系JuziBOT申请 Token 时长。
更多 Token 信息详细见: https://github.com/juzibot/Welcome/wiki/Everything-about-Wechaty
Token 是 Wechaty 的 Puppet 和云服务对接时的授权信息。 在设置了 Token 后,每个 Token 将可以使得一个微信号以 iPad、Windows 或 Mac 登录的方式进行登录,避免了既有网页端登录受限的问题。
每个 Token 可以使得一个微信号登录,如果希望多个号同时登录,需要获取多个 Token 。 但 Token 不与微信号绑定,即可以多个号不同时段轮流使用一个 Token 进行登录。
免费 Token 与付费 Token 完全相同,仅仅来源方式不同。
免费 Token 基于开源激励计划申请得到,详见https://github.com/juzibot/Welcome/wiki/Everything-about-Wechaty。
付费 Token 为直接按月支付云服务费用,可以添加Juzibot(微信号:juzibot)。
领取 15 天免费 Token 用于 MVP 版本开发(关键评价指标:是否填写开源激励计划申请表和项目信息)
https://github.com/wechaty/wechaty/wiki/Wechaty-Developer-Program
领取 Token 并成为 Wechaty Contributor (关键评价指标:是否为 Wechaty 社区贡献代码)
也可以微信搜索:juzibot 添加好友申请token.
-
先检查本地安装的padplus版本,点击查看最新版本,参考以下命令进行更新。
npm install wechaty npm install wechaty-puppet-padplus
-
若仍存在问题,欢迎在 issue 中查找解决办法或提交新的issue。
检查在创建bot时是否指定了name属性。详细示例参考:https://github.com/wechaty/wechaty-puppet-padplus#example
为了最大程度地服务开发者,句子互动的padplus协议和macpro协议均通过服务器中转数据的方式,模拟iPad和Mac登录进行处理。
数据不可避免地经过句子互动服务器,但句子互动会对数据进行加密处理,尽可能的保证用户数据安全,阻止任何人以任何方式访问用户数据。
wechaty 可以实现多个微信接入的方案,对外提供统一的接口,包括 web , ipad , ios 等等,其中 wechat4u 是 SPACELAN 写的基于 web 实现微信接入的, wechaty 可以实现用 wechaty 的接口,调用 wechat4u 的 api 。
- 打开官方微信web版:https://wx.qq.com/
- 扫码看能否成功登录微信官方web版
- 如果可以,则可以通过基于web协议的第三方工具、原生Wechaty登录微信。
- 如果不行,则需要按照上文流程申请 Token,使用其他协议登录。
从2017年6月下旬开始,使用基于web版微信接入方案存在大概率的被限制登陆的可能性。 主要表现为:无法登陆Web 微信,但不影响手机等其他平台。 验证是否被限制登陆: https://wx.qq.com 上扫码查看是否能登陆。 更多内容详见:
https://github.com/wechaty/wechaty/issues/603
根据微信号权重的不同,每个号有所差异:
每日被动通过好友数,建议不要超过200人; 每日主动添加好友数,建议不超过30个人。
Tips:英文版信息更全
- 主项目地址(NodeJs 为主要维护语言):https://github.com/wechaty/wechaty
- 示例代码:https://github.com/wechaty/wechaty-getting-started
- Java地址(社区维护):https://github.com/wechaty/java-wechaty
- Python地址(社区维护):https://github.com/wechaty/python-wechaty
- Go地址(社区维护):https://github.com/wechaty/go-wechaty
- Scala地址(社区维护):https://github.com/wechaty/scala-wechaty
- donet地址(社区维护):https://github.com/wechaty/dotnet-wechaty
- php地址(社区维护):https://github.com/wechaty/php-wechaty
https://github.com/wechaty/wechaty-puppet-padplus
https://github.com/juzibot/donut-tester
https://github.com/juzibot/wxwork-tester
目前,Wechaty提供:
收发文本、收发个人名片、收发图文链接、收发图片、收发文件、收发视频、接收语音消息; 转发文本、转发图片、转发图文链接、转发视频、转发文件;创建群聊、设置群公告、获取群公告、群二维码、拉人进群、踢人出群、改群名称、@群成员、群列表、群成员列表; 修改备注、添加好友、自动通过好友、好友列表等功能。
未在上文列出的功能通常意味着不能实现(如朋友圈相关功能),但不排除尽快实现的可能。
如果你是用的是Padplus Token,请参照:https://github.com/wechaty/wechaty/issues/1985
如果你想申请Donut Token并更轻松地进行开发,请在 https://github.com/wechaty/wechaty/issues/1941 进行申请。
从 github 上 clone wechaty 的教学代码: https://github.com/Chatie/wechaty-getting-started
运行 npm install
运行 npm start
默认会跑起来我们的 demo 例子, demo 代码位置 : examples/starter-bot.js
修改 demo 的例子,实现你自己想要的 bot 逻辑
Please follow the python-wechaty-getting-started repo at https://github.com/wechaty/pythotn-wechaty-getting-started which can help you onboard in minutes.
Please follow the python-wechaty-plugin-contrib repo at https://github.com/wechaty/python-wechaty-plugin-contrib which can help you onboard in minutes.
Contact.id 获取不到用户的微信号的,应该用 Contact.weixin() 获取用户的微信号。能否获取到用户的微信号,取决于你使用的是哪一个 Puppet 。
如果使用的是 Web 版本的 Puppet ,基于网页微信的机制,大部分情况下获取不到微信号,只有一小部分用户能获取到微信号。
如果使用的是 iPad 版本的 Puppet , 是可以拿到微信号的,但是前提这个 Contact 需要和 bot 是好友关系,非好友关系是拿不到微信号的。
通过 Contact.id 和 Room.id 获取好友和群的唯一 id 。不同的 Puppet ,这个唯一 id 是不同的。除此之外,还有一定重要的不同: 是否能够跨 session 依然保持不变,换句话说,当你重新登录的时候,或者切换账号登录的时候,同一个好友或者群的 id 是否唯一。不通的 Puppet 表现各不相同:
基于 Web 版本的 Puppet 得到的 id 跨 session 是会变化的,所以不能被用来当做你系统的唯一标识码来使用。
基于 iPad 版本的 Puppet 得到的 id 跨 session 是不会变化的,可以用来当做这个联系人的唯一标识码。相关 issue:#1644 About wxid or chatroomID
支付相关 - 红包、转账、收款 等都不支持
后续会支持
Wechaty 以支持个人微信为主,但 Wechaty 上线了公众号Puppet,可以让你用同一套代码迁移到公众号中,详见https://github.com/wechaty/wechaty-puppet-official-account。 此外,Windows 协议下的 Wechaty 可以支持与公众号的交互,申请详见:https://github.com/wechaty/wechaty/issues/1941
我们不支持账号密码登陆,以后也不会支持。有一些 Puppet 有有通过账号密码登陆的方法的,但是我们并不打算把这个 API 开放出来,因为以下 3 个原因:
有一些 Puppet 是不支持这个功能的,比如使用网页 API 的 PuppetWechat4u
当你使用扫码的方式登陆的时候,你是可以保存你手机的 session 的。换句话说,你可以同时让手机和机器人同时在线。如果你使用了用户名密码登陆,那么的 session 将会失效,只有机器人微信在线,手机微信将会自动退出。
通过用户名密码登陆的协议,是使用一个协议服务器来控制 iPad 微信的。如果你使用用户名密码的方式登陆,那么你就会直接把这些敏感的账号信息发给第三方的服务器,这种方式大部分用户会觉得很不舒服。
返回找到的第一个群,排序方式是随机的。
Room.findAll 可以拿到所有的群,但是微信的群数据量很大,需要同步时间。无论是 web 的 puppet 还是 iPad 的 puppet 都需要一定时间来同步这部分消息,如果在同步的时候去调用 Room.findAll ,就只能拿到当前已经同步好的群。
这取决于你多久之后重新启动,也取决于这条消息是否在手机上被阅读过。如果是断线重连的情况,是可以读到之前的消息的。
通常情况下,机器人只能读到在线期间所有的消息。
在启动的时候可以设置 wechaty 的 name (旧版本叫 profile ) 来存储机器人的登陆信息 登陆后会自动生成一个 *.memory-card.json 的文件,这样再次运行的时候,就不需要扫码就可以直接登陆机器人了const bot = Wechaty.instance({ name: 'your-cute-bot-name' })
default.memory-card.json 会用来存储登陆信息,机器人可以通过这个文件实现自动登陆。