你好,游客 登录
背景:
阅读新闻

如何打造一个个性的个人微信机器人

[日期:2018-01-22] 来源:Lafree's Blog  作者: [字体: ]

最近发现一个Python的微信轮子,于是随后搞出了个玩具..

从来没学过Python,一边谷歌一遍写出来的…求轻喷

>>项目地址<<

现在的功能有:

  • 群里有人@你 自动回复

  • 朋友私聊 自动回复

效果图

和基友调用小冰互喷:

辣鸡人工智能毁我婚姻:

Code

安装库

自行安装Python3

下载轮子 - Python微信接口库

按照文档安装可能会有些问题使用这个:

sudo pip3 install itchat`

接入小冰

本来是用图灵机器人来回复的,而且有Api调用起来很方便,但是图灵机器人太傻了…就选择了微软小冰..

>>微软小冰地址<<

之后关注小冰的微信公众号

因为小冰没有Api所以回复流程大概是:

  • 1.A发给我

  • 2.我转发给小冰

  • 3.小冰回复了我

  • 4.我转发给A

经验

@itchat.msg_register([itchat.content.TEXT,itchat.content.PICTURE], isGroupChat = True)def group_reply(msg):

上面这个方法

itchat.content.TEXT代表接收文本,i tchat.content.PICTURE代表接收图片, itchat.content还有很多类型不写代表不接收

后面的 isGroupChat = True代表接收群消息,如果写成 isMpChat = True就代表接收公众号消息,小冰的回复属于公众号消息所以用下面代码接收

# 公众号消息@itchat.msg_register([itchat.content.TEXT,itchat.content.PICTURE], isMpChat = True)def map_reply(msg):
text = getText(msg) global userId if msg['Type'] == 'Picture':
msg['Text'](msg['FileName'])
itchat.send_image(msg['FileName'],userId)
itchat.send_msg('上图为微软小冰回答', userId) else:
itchat.send_msg(text + " 微软小冰的智能回复", userId)

我设置了一个全局变量 userId用来记录每次要回复的人,每次使用的时候调用一下 global userId来取到它,这么设计肯定会有Bug但是我还没遇到,求大神改成闭包或异步…

# 搜索群聊itchat.search_chatrooms(userName=fromUserName)
# 搜索好友itchat.search_friends(userName=fromUserName)
# 搜索公众号itchat.search_mps(name='小冰')[0]

收藏 推荐 打印 | 录入:Cstor | 阅读:
相关新闻      
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数
点评:
       
评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款