微信群聊图灵机器人 复制直接用

版权声明:本文为博主原创文章,未经博主允许不得转载。 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()
  1. 本人安装的是python 2.7版本
  2. 如果出现(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)
  3. 如果微信里自动回复  “请按照规定的操作进行加密”  去图灵机器人官网->管理机器人里吧密钥勾选去掉

复制粘贴直接用  

猜你喜欢

转载自blog.csdn.net/qq_34651026/article/details/86632088