python微信聊天机器人_Python搭建一个微信聊天机器人

前言

因为班群里总是挺静的,所以想着要不放个机器人试试能不能活跃活跃气氛,然后就begin网上查阅资料试着建立个机器人。

语言环境开发环境:Ubuntu16.04

编程语言:Python2.7

步骤第一步:首先安装python2.7语言

sudo apt-get install python2.7

e818c7fcgy1fp7suzpy5rj20q90f5mxn.jpg第二部:安装微信机器人所需要的python模块--wxpy,该项目基于 Github 上的 wxpy,想要了解更多的文档使用可以点击这里,里面有介绍。如果你使用的不是Python2.7的语言,可以将下方命令中的 "pip" 替换为 "pip3" 或 "pip2",可确保安装到对应的 Python 版本中,我的是Python2.7的版本 所以我的是pip2

安装方式1

从 PYPI 官方源下载安装 (在国内使用可能比较慢或不稳定):

pip2 install -U wxpy

安装方式2

从豆瓣 PYPI 镜像源下载安装 (建议国内用户使用):

pip2 install -U wxpy -i "https://pypi.doubanio.com/simple/"

e818c7fcgy1fp7sv0as7rj20if0byglv.jpg第三部:去图灵机器人官网注册一个帐号,创建一个机器人。创建好后他会给我们一个APIkey。

e818c7fcgy1fp7sv1g2zcj213k0j479w.jpg

e818c7fcgy1fp7sv2c7ybj21350jijtg.jpg第四部:在服务器上创建机器人登陆微信。先在服务器的命令行输入:python 进入运行python调试模式,然后创建机器人# 导入模块

from wxpy import *

# 初始化机器人,扫码登陆

bot = Bot(console_qr=True)为什么要在括号内加console_qr=True,因为部署在服务器终端上会显示不到二维码,所以可以通过参数来让二维码现实在终端内。详情可看这里

e818c7fcgy1fp7sv6l39fj20m80mnwj9.jpg第五部:机器人注册消息回复。消息回复中的机器人可以使用 图灵机器人, 可免费申请 API,调用他。也可以使用 小 I 机器人。我用的是图灵机器人。所以调用的是图灵机器人的API,综合刚刚上面的登录,我们的调试代码可以写成from wxpy import *

bot = Bot(console_qr=True)

tuling = Tuling(api_key="你申请机器人的API")第六部:可以根据 wxpy 手册提供的的一些基本的注册消息代码添加需要的功能。比如 自动接受好友请求:# 注册好友请求类消息

@bot.register(msg_types=FRIENDS)

# 自动接受验证信息中包含 'wxpy' 的好友请求

def auto_accept_friends(msg):

# 判断好友请求中的验证文本

if 'wxpy' in msg.text.lower():

# 接受好友 (msg.card 为该请求的用户对象)

new_friend = bot.accept_friend(msg.card)

# 或 new_friend = msg.card.accept()

# 向新的好友发送消息

new_friend.send('哈哈,我自动接受了你的好友请求')

# 获取所有类型的消息(好友消息、群聊、公众号,不包括任何自己发送的消息)

# 并将获得的消息打印到控制台

@bot.register()

def print_others(msg):

print(msg)

# 回复 my_friend 发送的消息

@bot.register(my_friend)

def reply_my_friend(msg):

return 'received: {} ({})'.format(msg.text, msg.type)

# 回复发送给自己的消息,可以使用这个方法来进行测试机器人而不影响到他人

@bot.register(bot.self, except_self=False)

def reply_self(msg):

return 'received: {} ({})'.format(msg.text, msg.type)

# 打印出所有群聊中@自己的文本消息,并自动回复相同内容

# 这条注册消息是我们构建群聊机器人的基础

@bot.register(Group, TEXT)

def print_group_msg(msg):

if msg.is_at:

print(msg)

msg.reply(meg.text)

以上部分代码选自简书进行完以上代码可能会导致python退出,然后可以根据wxpy给出的使用embed()方法保持程序运行# 进入 Python 命令行、让程序保持运行

# 推荐使用

embed()

# 或者仅仅堵塞线程

# bot.join()

最后

因为我要在群里放个机器人,肯定不能选择自动回复所以消息,因为这样会影响到群的不友好。所以我的机器人是选择了回复好友和群里@AT机器人时在回复消息。from wxpy import *

bot = Bot(console_qr=True)

tuling = Tuling(api_key="你的机器人的key")

@bot.register([Friend, Group])

def reply_friend(msg):

"""

消息自动回复

"""

tuling.do_reply(msg)

return

return tuling.do_reply(msg)

@bot.register(Group, TEXT)

def print_group_msg(msg):

if msg.is_at:

tuling.do_reply(msg)

msg.reply(meg.text)

# 回复 my_friend 的消息 (优先匹配后注册的函数!)

@bot.register(my_friend)

def reply_my_friend(msg):

tuling.do_reply(msg)

return 'received: {} ({})'.format(msg.text, msg.type)

# 自动接受新的好友请求

@bot.register(msg_types=FRIENDS)

def auto_accept_friends(msg):

# 接受好友请求

new_friend = msg.card.accept()

# 向新的好友发送消息

new_friend.send('哈哈!我们现在是超级好的好朋友了呢~~~!,')

embed()

注意

因为这只是调试程序,好像我们以关闭命令行或者退出SSH就会发现机器人失效不起作用了。一开始被这个问题困扰着,百度也没找到答案,可能是我自己不知道要怎么搜索关键字。后来求助@后宫学长得到了一个解决的方案。

可以用screen来解决离开会话无法运行的问题 下载安装screen

apt-get -y install screen

安装好后在服务器上输入screen -S oneinstack (screen -S “任务名”)后会弹出新的窗口

然后我们在这个新的窗口来运行我们的Python的机器人,运行玩后测试机器人能不能聊天

没有问题的话我们依次按下CTRL +A+D,这样我们就退会原先的窗口了,这时候可以关闭服务器了,机器人也依然在运行着。

如果想关闭原来的窗口我们需要输入screen -R oneinstack重新回到那个新开的窗口,执行exit关闭后在回到主窗口关闭服务器。

发现

第一天的效果,大家都觉得很好奇。

e818c7fcgy1fp7sv3c7xxj20dm0jsjto.jpg

e818c7fcgy1fp7sv4byv8j20d60kkjtg.jpg

e818c7fcgy1fp7sv3xmhfj20co0jz40f.jpg

但是但是...后来发现兴起这只是一时的罢了,过了没多久还是会安静滴滴····

不妨一起搭个机器人玩玩吧

欢迎骚扰 大白 :oops:

微信已被禁止网页端登录,大白··已经用不了

e818c7fcgy1fpel4mtdj7j20u50u0tac.jpg

文章发布时间: Mar 10, 2018 at 02:23 pm

最后编辑时间: May 15, 2019 at 01:20 am

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值