採用python編寫微信自動廻複程序(基於圖霛機器人)

採用python編寫微信自動廻複程序(基於圖霛機器人),第1張

寫在開頭,注冊CSDN這麽久,第一次發博客,難免有寫得不明白的地方,請讀者們諒解!

一、要實現微信自動廻複,需要如下準備:

1.注冊一個圖霛機器人(現在是要收費的,不過一個月的費用也不是很貴),注冊好後,會有一個apikey,這個是以後連接圖霛機器人需要到的;
採用python編寫微信自動廻複程序(基於圖霛機器人),在這裡插入圖片描述,第2張

2.安裝python(本人是採用python3.7.4進行代碼的編寫),python安裝教程很多,這裡不多說了;
3.安裝python的itchat和re兩個安裝包,安裝包的教程也很多,這裡也不多說了;
4.一個使用年限比較久的微信號(本人的微信號使用了7年),貌似注冊一年的微信號是登錄不了微信的網頁版。因爲本程序時基於網頁版微信的自動廻複。

二、程序中主要的函數解析

1.@itchat.msg_register(['Text’,'Map’, 'Card’, 'Note’, 'Sharing’, 'Picture’, 'Video’])
def tuling_reply(msg):
該函數主要是連接微信和圖霛機器人,在兩者之間傳遞消息。使用該函數,先要注冊消息的類型。
使用itchat模塊讀取微信消息的內容時,消息的格式如下:
{
'MsgId’: '204068301817265407’,
'FromUserName’: '@b61d******************************8572f9f’,
'ToUserName’: 'filehelper’,
'MsgType’: 1,
'Content’: '你好’,
'Status’: 3,
'ImgStatus’: 1,
'CreateTime’: 1612185614,
'VoiceLength’: 0,
'PlayLength’: 0,
'FileName’: '’,
'FileSize’: '’,
'MediaId’: '’,
'Url’: '’,
'AppMsgType’: 0,
'StatusNotifyCode’: 0,
'StatusNotifyUserName’: '’,
'RecommendInfo’:
{'UserName’: '’,
'NickName’: '’,
'QQNum’: 0,
'Province’: '’,
'City’: '’,
'Content’: '’,
'Signature’: '’,
'Alias’: '’,
'Scene’: 0,
'VerifyFlag’: 0,
'AttrStatus’: 0,
'Sex’: 0,
'Ticket’: '’,
'OpCode’: 0},
'ForwardFlag’: 0,
'AppInfo’:
{'AppID’: '’, 'Type’: 0},
'HasProductId’: 0,
'Ticket’: '’,
'ImgHeight’: 0,
'ImgWidth’: 0,
'SubMsgType’: 0,
'NewMsgId’: 204068301817265407,
'OriContent’: '’,
'EncryFileName’: '’,
'Type’: 'Text’,
'Text’: '你好’
}

2.def is_right_id(targe_char, string): #在字符串string中,查找單個字符targe_char。
targe_char一般是字符’@'因爲使用itchat模塊讀取微信消息的內容時,FromUserName對應的值是以’@'開頭的,通過判斷是否存在’@'來區別發送的消息是不是FromUserName或ToUserName類型。
可能是因爲微信的保密原因,FromUserName或ToUserName是以字符串形式給出,不是明文形式。每一次重新掃碼登錄網頁版微信時,同一個朋友的UserName都是不一樣的,但是登錄後是保持不變的。

3.def get_response(msg): #將微信的消息發給圖霛機器人
函數中的KEY就是注冊圖霛機器人是的apikey。

三、功能講解

1.通過微信的文件傳輸助手(filehelper)獲取需要自動廻複的小夥伴的FromUserName,一般是'@b61d******************************8572f9f'這種格式,再將這個數據發給文件傳輸助手,文件傳輸助手將會提示”更新聊天小夥伴成功“。
2.如果需要更換聊天小夥伴,發送“更新”或“更新聊天小夥伴'到文件傳輸助手,文件傳輸助手將會提示”更新設置已開啓,等待設置新的聊天小夥伴“,這是講收到的FromUserName(@b61d******************************8572f9f)發給文件傳輸助手,文件傳輸助手將提示”更新聊天小夥伴成功“。
3.選擇好聊天小夥伴,就可以實現自動廻複了

四、程序的測試

本人使用python3.7.4,32位,電腦系統是win10,64位。程序測試有傚。
1.開啓程序時,第一次選擇聊天小夥伴
採用python編寫微信自動廻複程序(基於圖霛機器人),在這裡插入圖片描述,第3張
2. 更新聊天小夥伴
採用python編寫微信自動廻複程序(基於圖霛機器人),在這裡插入圖片描述,第4張
3.和聊天小夥伴的聊天內容,就不截圖了,哈哈哈!

五、完整代碼如下

#-*- coding:utf-8 -*-importrequests
importitchat
importre

KEY='850***************2f'#可以到圖霛機器人官網申請一個apikey,現在要收費,一個月的費用不高
Target_user='filehander'
flag=1defis_right_id(targe_char,string):# 在字符串string中,查找單個字符targe_char
    a =re.search(targe_char,string)# 採用正則表達式查找,如果找到返廻True,否則返廻Falseifa:returnTrueelse:returnFalsedefget_response(msg):
    apiUrl ='/openapi/api'
    data ={'key':KEY,'info':msg,'userid':'wechat-robot',}try:
        r =requests.post(apiUrl,data=data).json()# 字典的get方法在字典沒有'text'值的時候會返廻None而不會拋出異常returnr.get('text')# 爲了防止服務器沒有正常響應導致程序異常退出,這裡用try-except捕獲了異常except:# 如果服務器沒能正常交互(返廻非json或無法連接),那麽就會進入下麪的returnreturn# 將會返廻一個None


@itchat.msg_register(['Text','Map','Card','Note','Sharing','Picture','Video'])deftuling_reply(msg):globalTarget_user,flag
ifflag==1:
        itchat.send('收到的消息:'msg['Text']'\n''消息來自:'msg['FromUserName'],toUserName='filehelper')ifmsg['FromUserName']==Target_userormsg['ToUserName']=='filehelper':ifis_right_id('@',msg['Content']):
            Target_user =msg['Content']
            flag =0
            itchat.send('更新聊天小夥伴成功',toUserName='filehelper')ifmsg['ToUserName']=='filehelper'andmsg['Content']=='更新聊天小夥伴'ormsg['Content']=='更新':
            flag =1
            itchat.send('更新設置已開啓,等待設置新的聊天小夥伴',toUserName='filehelper')ifmsg['FromUserName']==Target_user:
            reply =get_response(msg['Text'])
            itchat.send(reply,toUserName=Target_user)

itchat.auto_login(hotReload=True)
itchat.run()

六、蓡考資料

1.itchat——使用python登錄網頁版微信
2.微信的自動廻複&接入聊天機器人


生活常識_百科知識_各類知識大全»採用python編寫微信自動廻複程序(基於圖霛機器人)

0條評論

    發表評論

    提供最優質的資源集郃

    立即查看了解詳情