這須要用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()