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:\Users\Administrator\PycharmProjects\untitled\Test\微信好友:'+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()

posted @ 2019-06-22 10:38  Python及时行乐  阅读(1862)  评论(0编辑  收藏  举报