我们在 UCloud 上运行了 Linux中国 的翻译平台,同时,最近我们的另外一个项目 运维密码 发展迅猛,体验群很快就达到了 100 人,达到了100人后,就没有办法让用户通过扫描二维码来加群,只能让用户加我们的微信,然后由我们来把用户拉群。这样十分不便,而且也容易出现纰漏。 于是我们便考虑在云主机上,运行一个微信机器人,由微信机器人来实现加群,免去手动拉群的麻烦。具体实现过程如下: 目录
代码实现我们的核心需求主要是两个:
首先,我们要去创建一个机器人的实例,代码如下 这两行代码引入了 wxpy ,并生成了一个 bot 实例。这个实例会将我们的登陆信息保存到 bot.pkl 中,这样我们在短时间内的机器人重启时,就不用重复登陆了。 接下来,我们定义一个函数来校验用户的验证信息中,是否有我们需要的关键词。 并且定义一个方法,用来邀请用户加入到我们的运维密码工作群中。 这个里面的关键是我们要使用bot的groups方法来获取到所有的用户,并使用搜索,取到我们想要的数据。 在这里我是使用了数据的 第一个结果,当然,你也可以在搜索时,使用 ensure_one 方法来保证只返回一个结果,而不是一个数组。 找到我们要邀请的用户以后,就可以使用 group 的 add_memebers 方法来邀请用户加入到群聊。由于我们的群已经到了100人的限制。所以这里将第二个参数设置为 true 。 上述的两个方法,我们基本完成了我们需要使用的部分。 接下来,我们就要让机器人来自动处理我们的请求消息了。 这里最关键的是第一行的 @bot.register(msg_types=FRIENDS),这行代码是指注册一个监听器,来监听类型是 FRIEDNS 的消息,也就是加好友的消息。 然后定义了一个新的函数 new_friends(msg),在这个函数里,我们定义 user 为接受了用户的信息,并获取他的身份信息。 并且调用 valid_msg 的方法来判断添加好友的信息是否存在,如果返回的结果为真,就调用邀请用户的方法。 部署到UCloud接下来我们尝试将项目部署到UCloud云主机上: 创建主机
购买成功后回到主机管理列表,如下所示: ![]() 这里注意记住你的外网IP,下面的ip替换成你的 基础环境安装 由于我们的主机运行的是 CentOS 7.2 ,自带的是 Python 2.7.5 ,而 wxpy 需要运行在 Python 3 下,所以我们首先进行的是 Python 3 的安装。 执行如下命令来安装 Python 3 接下来安装 Pip 安装完成 Python 3 和 pip ,接下来我们就可以开始安装 wxpy 了 在命令行中执行 至此,就完成了基础环境搭建工作,机器人实现代码就可以顺利运行在此云主机上了。 代码复盘 及 设计理念解析以上就是微信拉群机器人的全部实现过程,最终效果如下图: ![]() 就微信机器人来说,最关键的,是要对机器人接受到的信息注册监听器。通过监听消息的类型、消息的内容,来执行对应的操作。 比如我监听的事 FRIENDS 消息,同样的也可以监听好友消息等等。通过不同的监听模式来实现我们的具体功能是核心。如果我们把代码精简一下,最终的代码就是 最少的情况下只需要这些代码,就足够我们启动机器人了。当然,这样并不是最佳实践,代码的可读性还有待提高。 如果你有更好的实践思路,也欢迎同我沟通。 相关阅读推荐:一起学 Node.js | 使用 Express + MongoDB 搭建多人博客
———史上最强有偿征稿的分割线——— 如果你也有一些技术实践经验想分享给大家,欢迎投稿给我们:) UCloud机构号将提供 300云服务代金券赞助+500元/篇的转载费+全技术渠道推广资源! 你的开源项目将被更多技术同学阅读、点赞、感谢、分享!征稿奖励细则 另,作品一经UCloud官方转载,我们将提供额外提供: 1:500元/篇的文章转载费,上不封顶; 优质作者更有希望成为 UCloud签约作者,享受更多高端福利哦~
|
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|