美文网首页AI新时空Python
[python]python实现微信私聊、群聊自动回复(仅文本)

[python]python实现微信私聊、群聊自动回复(仅文本)

作者: 小明阿婆 | 来源:发表于2020-05-11 22:15 被阅读0次



今天用到的是一个炒鸡简单的微信库:itchat
itchat一个开源的微信个人号接口,使用它能轻松的调用微信。使用不到三十行的代码,你就可以完成一个能够处理所有信息的微信机器人( ͡° ͜ʖ ͡°)

使用工具:图灵123机器人,itchat ,requests,json



环境准备


  1. 搭建python开发环境,这个网上已经有很多教程的,也就不多赘述了
  2. 安装外部包,cmd下运行下面两条命令
pip install itchat
pip install requests
  1. 注册图灵123机器人
    http://www.turingapi.com/



源码环节


好的,下面就是喜闻乐见的源码环节了(´◔౪◔)

import requests
import json
import itchat

# 连接图灵api,返回机器人回复
def get_reply_from_tuling123(msg):
    apiURL = "http://openapi.tuling123.com/openapi/api/v2"

    data = {
        "reqType": 0,
        "perception": {
            "inputText": {
                "text": msg
            }
        },
        "userInfo": {
            #机器人设置中的apiKey,每个机器人的唯一识别码
            "apiKey": "xxx",
            #机器人会以userId自称,比如:朕?,别傻了不支持中文哦
            "userId": "robot123"
        }
    }
    # "apiKey": "48979f1ef681413e82addf309e929bd7"
    # "userId": "robot123"

    # 将data字典转化为json形式,图灵123V2后需要提交json数据类型
    data_json = json.dumps(data)

    # 使用requests发送post请求,并用r接受返回的json数据
    r = requests.post(apiURL,data=data_json).json()

    # 打印一下微信好友的内容
    print('msg:'+msg)
    # 打印一下机器人的回复
    print('robot_reply:'+r['results'][0]['values']['text'])

    # 返回内容
    return r['results'][0]['values']['text']

    # print(r)#原回复:
    # {'emotion': {'robotEmotion': {'a': 0, 'd': 0, 'emotionId': 20500, 'p': 0}, 'userEmotion': {'a': 0, 'd': 0, 'emotionId': 10300, 'p': 0}}, 'intent': {'actionName': '', 'code': 10004, 'intentName': ''}, 'results': [{'groupType': 1, 'resultType': 'text', 'values': {'text': '好烦呀,robot不要跟你聊天了'}}]}
    # r['results'][0]['values']['text']




# 在装饰器中 添加isGroupChat=True,则只针对群聊,不添加则是默认私聊
# isFriendChat=True, isGroupChat=True, isMpChat=True
@itchat.msg_register(itchat.content.TEXT,isGroupChat=True)
def auto_reply(msg):
    # 设置默认回复,如果机器人没有回复的话
    default_reply = '嗯,好的'



    # 搜索群聊,name参数携带群名
    chatrooms = itchat.search_chatrooms(name="混子联盟")
    # friends = itchat.search_friends(name="恰似一江春水向东流")

    # 从chatrooms中获取该群的唯一标识符,类似于群id
    real_chatrooms = chatrooms[0]['UserName']
    # real_friends = friends[0]['UserName']

    # 仅针对该群发送
    if msg['FromUserName'] == real_chatrooms:
        # print("原始msg:",msg)

        # 获取自动回复,这里参数只取msg的Text的内容
        reply = get_reply_from_tuling123(msg['Text'])

        # 发送
        itchat.send(reply, toUserName=real_chatrooms)





# 微信登录,设置参数可以短时间内重复登录不扫码登录
# itchat这里登录的是网页版
itchat.auto_login(hotReload=True)

# 启动
itchat.run()



效果展示




舒服(●´ω`●)φ

那么本次的分享就到这里了,喜欢的话麻烦点赞关注一下;不喜欢的话可以去看下小编的其他文章,肯定有喜欢的;都不喜欢的话可以点个关注,万一以后有喜欢的呢(๑•̀ㅂ•́)و✧





相关文章

网友评论

    本文标题:[python]python实现微信私聊、群聊自动回复(仅文本)

    本文链接:https://www.haomeiwen.com/subject/blnpnhtx.html