zoukankan      html  css  js  c++  java
  • Python itchat模块的使用,利用图灵机器人进行微信消息自动回复

    一、下载安装itchat模块

    在这里插入图片描述

    二、小实验:获取微信好友头像信息

    这需要用itchat模块中的一个方法

    itchat.get_friends()#获取微信所有微信好友信息
    

    现在我们导入itchat,打印一下,看看好友信息有哪些字段数据

    import itchat
    #itchat.login()生成一个登陆二维码,此方式每次程序运行都需要扫码
    itchat.auto_login(hotReload=True)#持续登录,只用扫一次二维码即可
    friends = itchat.get_friends()#获取微信所有好友信息
    for i in friends:
    	print(i)
    

    这里只拿出几个常用字段说明:
    UserName:微信号唯一标识符
    NickName:微信名
    HeadImgUrl:头像url
    RemarkName:备注
    Signature:签名
    Province:省份
    City:城市

    从好友信息对象中获取头像图片并存储:

    import itchat
    #itchat.login()生成一个登陆二维码,此方式每次程序运行都需要扫码
    itchat.auto_login(hotReload=True)#持续登录,只用扫一次二维码即可
    friends = itchat.get_friends()#获取微信所有好友信息
    print(friends)
    for i in friends:
        img = itchat.get_head_img(userName=i['UserName'])#获取好友头像
        path = r'C:UsersAdministratorPycharmProjectsuntitledTest微信好友:'+i['RemarkName']+'.jpg'
        with open(path,'wb') as f:
            f.write(img)
    

    三、使用图灵机器人实现微信自动回复

    进入图灵机器人官方网站创建机器人
    在这里插入图片描述
    记录机器人的apikey
    进入帮助中心,找到apiv2.0接入教程,里面会有详细的对接教程及一些参数的说明
    在这里插入图片描述
    然后就可以开始通过python itchat和图灵机器人进行对接,实现自动回复消息

    import itchat
    import requests
    import json
    
    def get_response(msg):
        url = 'http://openapi.tuling123.com/openapi/api/v2'
        data = {
    	"reqType":0,
        "perception": {
            "inputText": {
                "text": msg
            },
            "inputImage": {
                "url": "imageUrl"
            },
            "selfInfo": {
                "location": {
                    "city": "北京",
                    "province": "北京",
                    "street": "信息路"
                    }
                }
            },
            "userInfo": {
                "apiKey": "图灵机器人apikey号",
                "userId": "what"#userID随便填一个字符
            }
        }
        data = json.dumps(data)#把data变成json格式
        response = requests.post(url,data=data).json()#打印出来是个字典
        #print(response['results'][0]['values']['text'])#从数据中取出机器人回复的消息文字
        return(response['results'][0]['values']['text'])
    #get_response('你有什么事吗')#模拟好友发送信息
    #python3中可以使用json模块来对json数据进行编解码
    #它包含了两个函数:
    #json.dumps()对数据进行编码
    #json.loads()对数据进行解码
    itchat.auto_login(hotReload=True)#保持登录
    @itchat.msg_register(itchat.content.TEXT)#装饰器,对下面的函数添加新功能
    def auto_reply(message):
        #print(message)
        only_reply_info = '哈哈哈,你又上当了!'#设置指定回复消息
        friend_info = message['Text']#获取好友发送的文本信息
        friend_id = message['FromUserName']#获取好友id
        reply_info = get_response(friend_info)#将好友信息发送给图灵机器人
        only_friend_info = itchat.search_friends(name='微信备注名')#获取指定好友发送的消息
        if friend_id == only_friend_info[0]['UserName']:
            itchat.send(msg=only_reply_info, toUserName=friend_id)#规定指定联系人回复消息
        else:
            itchat.send(msg=reply_info,toUserName=friend_id)#正常机器人智能回复
    
    if __name__ == "__main__":
    	itchat.run()
    
    
  • 相关阅读:
    codeforces 261B Maxim and Restaurant(概率DP)
    洛谷P3066 [USACO12DEC]逃跑的Barn (线段树合并)
    洛谷P1600 天天爱跑步(线段树合并)
    AtCoder
    SPOJ10606 BALNUM
    洛谷P3567[POI2014]KUR-Couriers(主席树+二分)
    洛谷P2633 Count on a tree(主席树上树)
    【.Net边角料系列】1-单例模式(我真不是你想的那样)
    生成二维码的开源工具对比(附源码了呀!)
    你所不知道的linq(二)
  • 原文地址:https://www.cnblogs.com/ilovepython/p/11068840.html
Copyright © 2011-2022 走看看