Skip to content
Ricky Yin edited this page Aug 31, 2020 · 13 revisions

此文档为添加Wechaty开源框架的运营机器人 JuziBot 的流程。

如果你是JuziBot的老用户,请直接阅读老用户指南

除了一些常见问题的自动回复,拉群等功能,运营人员也会在每周一至周五的17:00-19:00间,人工审核开源激励计划的申请,发放token。

期待着与你一起做出好玩、有用的聊天机器人。

Token 申请

添加欢迎语-1

你好!这里是Wechaty开源框架的运营机器人。 我们提供一整套微信机器人的解决方案,帮助你用最短6行代码就能快速部署你自己的微信机器人。

通过更换Token(切换不同底层协议的令牌),可以实现用电脑端模拟 Web 、iPad、Mac 登录微信并自动收发消息的效果。

添加欢迎语-2

基于微信 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 流程。

Wechaty开源激励计划2.0申请表

审核通过

已收到你的开源激励计划Token申请,非常感谢您的申请,期待着与你一起做出好玩、有用的聊天机器人。

依照你所提交的任务详情,我们将为你提供15天有效期的试用 Token,以支持你提交 MVP 代码并成为 Wechaty Contributor。

成为Contributor并获取长期 Token

Juzibot 提供 5 * 10 小时在线服务,周一至周五(国家法定节假日除外),10:00-20:00

  1. 添加 juzibot 为微信好友,成功填写开源激励计划申请表和项目信息的开发者,即可领取 15 天免费 Token 用于 MVP 版本开发。
  2. 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能做什么?

Token 是 Wechaty 的 Puppet 和云服务对接时的授权信息。 在设置了 Token 后,每个 Token 将可以使得一个微信号以 iPad、Windows 或 Mac 登录的方式进行登录,避免了既有网页端登录受限的问题。

Token 与微信号的关系是什么?

每个 Token 可以使得一个微信号登录,如果希望多个号同时登录,需要获取多个 Token 。 但 Token 不与微信号绑定,即可以多个号不同时段轮流使用一个 Token 进行登录。

免费 Token 和付费 Token 的区别?

免费 Token 与付费 Token 完全相同,仅仅来源方式不同。 免费 Token 基于开源激励计划申请得到,详见https://github.com/juzibot/Welcome/wiki/Everything-about-Wechaty。
付费 Token 为直接按月支付云服务费用,可以添加Juzibot(微信号:juzibot)。

如何申请 Token?

领取 15 天免费 Token 用于 MVP 版本开发(关键评价指标:是否填写开源激励计划申请表和项目信息)

https://github.com/wechaty/wechaty/wiki/Wechaty-Developer-Program

领取 Token 并成为 Wechaty Contributor (关键评价指标:是否为 Wechaty 社区贡献代码)

也可以微信搜索:juzibot 添加好友申请token.

如果运行padplus发现报错怎么办?

  1. 先检查本地安装的padplus版本,点击查看最新版本,参考以下命令进行更新。

    npm install wechaty  
    npm install wechaty-puppet-padplus
    
  2. 若仍存在问题,欢迎在 issue 中查找解决办法或提交新的issue。

开发过程中每次调试都要重新扫码登录怎么办?

检查在创建bot时是否指定了name属性。详细示例参考:https://github.com/wechaty/wechaty-puppet-padplus#example

登录地址显示为北京,数据是否经过句子互动服务器?

为了最大程度地服务开发者,句子互动的padplus协议和macpro协议均通过服务器中转数据的方式,模拟iPad和Mac登录进行处理。
数据不可避免地经过句子互动服务器,但句子互动会对数据进行加密处理,尽可能的保证用户数据安全,阻止任何人以任何方式访问用户数据。

wechaty 和 wechat4u 项目,有什么区别?

wechaty 可以实现多个微信接入的方案,对外提供统一的接口,包括 web , ipad , ios 等等,其中 wechat4u 是 SPACELAN 写的基于 web 实现微信接入的, wechaty 可以实现用 wechaty 的接口,调用 wechat4u 的 api 。

微信风控相关问题

如何检测微信号是否支持web版?

  1. 打开官方微信web版:https://wx.qq.com/
  2. 扫码看能否成功登录微信官方web版
  3. 如果可以,则可以通过基于web协议的第三方工具、原生Wechaty登录微信。
  4. 如果不行,则需要按照上文流程申请 Token,使用其他协议登录。

提示“为了你的帐号安全,此微信号不能登录网页微信”怎么回事?

从2017年6月下旬开始,使用基于web版微信接入方案存在大概率的被限制登陆的可能性。 主要表现为:无法登陆Web 微信,但不影响手机等其他平台。 验证是否被限制登陆: https://wx.qq.com 上扫码查看是否能登陆。 更多内容详见:

https://github.com/wechaty/wechaty/issues/603

每天可以添加多少好友?

根据微信号权重的不同,每个号有所差异:

每日被动通过好友数,建议不要超过200人; 每日主动添加好友数,建议不超过30个人。

5.开发资源

5.1.Wechaty 官网

5.2.API 文档链接

Tips:英文版信息更全

5.3.Wechaty 项目地址

5.4.padplus 项目地址(基于ipad协议)

https://github.com/wechaty/wechaty-puppet-padplus

5.5.donut 项目地址(基于windows协议)

https://github.com/juzibot/donut-tester

5.6.wxwork(企业微信) 项目地址(使用wechaty搭建一个企业微信机器人)

https://github.com/juzibot/wxwork-tester

开发常见问题

Wechaty能实现哪些功能?

目前,Wechaty提供:

收发文本、收发个人名片、收发图文链接、收发图片、收发文件、收发视频、接收语音消息; 转发文本、转发图片、转发图文链接、转发视频、转发文件;创建群聊、设置群公告、获取群公告、群二维码、拉人进群、踢人出群、改群名称、@群成员、群列表、群成员列表; 修改备注、添加好友、自动通过好友、好友列表等功能。

未在上文列出的功能通常意味着不能实现(如朋友圈相关功能),但不排除尽快实现的可能。

多语言运行不了的原因是什么?

如果你是用的是Padplus Token,请参照:https://github.com/wechaty/wechaty/issues/1985

如果你想申请Donut Token并更轻松地进行开发,请在 https://github.com/wechaty/wechaty/issues/1941 进行申请。

如何跑起来Demo?

从 github 上 clone wechaty 的教学代码: https://github.com/Chatie/wechaty-getting-started

运行 npm install

运行 npm start

默认会跑起来我们的 demo 例子, demo 代码位置 : examples/starter-bot.js

修改 demo 的例子,实现你自己想要的 bot 逻辑

如何用python跑起来?

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 是好友关系,非好友关系是拿不到微信号的。

如何获取到好友和群的唯一id?

通过 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 以支持个人微信为主,但 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.find()找到的群,要是用户名或群名字有相同的会怎么办,find找到的是哪一个?

返回找到的第一个群,排序方式是随机的。

Room.findAll拿不到所有的群列表吗?

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 的文件,这个文件是干什么的?

default.memory-card.json 会用来存储登陆信息,机器人可以通过这个文件实现自动登陆。

Clone this wiki locally