版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34651026/article/details/86632088
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.text
data = 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_text
if '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)
- 如果微信里自动回复 “请按照规定的操作进行加密” 去图灵机器人官网->管理机器人里吧密钥勾选去掉
复制粘贴直接用