这须要用itchat模块中的一个方法python
itchat.get_friends()#获取微信全部微信好友信息
如今咱们导入itchat,打印一下,看看好友信息有哪些字段数据web
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:城市json
从好友信息对象中获取头像图片并存储:api
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()