from itchat.content import *
import requests
import json
import itchat
#最好添加这个 不然会报错
import sys
defaultencoding = 'utf-8'
if sys.getdefaultencoding() != defaultencoding:reload(sys)sys.setdefaultencoding(defaultencoding)
itchat.auto_login(hotReload=True)# 调用图灵机器人的api,采用爬虫的原理,根据聊天消息返回回复内容
def tuling(info):#appkey 去图灵官网去申请 http://www.tuling123.com/appkey = "XXXXXXXXXXXXXX"url = "http://www.tuling123.com/openapi/api?key=%s&info=%s" % (appkey, info)req = requests.get(url)content = req.textdata = json.loads(content)answer = data['text']return answer# 对于群聊信息,定义获取想要针对某个群进行机器人回复的群ID函数
def group_id():groups = itchat.get_chatrooms(update=True)for i in range(len(groups)):group_name = groups[i]['NickName']#XXXXX 是群聊的名称if 'XXXXX' in group_name:return group_name# 注册文本消息,绑定到text_reply处理函数
# text_reply msg_files可以处理好友之间的聊天回复
@itchat.msg_register([TEXT, MAP, CARD, NOTE, SHARING])
def text_reply(msg):itchat.send('%s' % tuling(msg['Text']), msg['FromUserName'])@itchat.msg_register([PICTURE, RECORDING, ATTACHMENT, VIDEO])
def download_files(msg):msg['Text'](msg['FileName'])return '@%s@%s' % ({'Picture': 'img', 'Video': 'vid'}.get(msg['Type'], 'fil'), msg['FileName'])# 现在微信加了好多群,并不想对所有的群都进行设置微信机器人,只针对想要设置的群进行微信机器人,可进行如下设置
@itchat.msg_register(TEXT, isGroupChat=True)
def group_text_reply(msg):group_name = group_id()if msg['isAt']:msg_text = msg['Text']info = msg_textif 'XXXXXX' in msg_text: # if里 写你微信名字info = str(msg_text).replace('XXXXXX','') #replace里写你微信名字msg.user.send(u'%s' % tuling(info),group_name)itchat.run()
- 本人安装的是python 2.7版本
- 如果出现(UnicodeDecodeError: 'ascii' codec can't decode byte 0xe9 in position 0: ordinal not in range(128))这个错误添加
import sys defaultencoding = 'utf-8' if sys.getdefaultencoding() != defaultencoding:reload(sys)sys.setdefaultencoding(defaultencoding) itchat.auto_login(hotReload=True)
- 如果微信里自动回复 “请按照规定的操作进行加密” 去图灵机器人官网->管理机器人里吧密钥勾选去掉
复制粘贴直接用