Python實現微信自動回覆和羣聊助手

微信公衆號:inspurer
關注可瞭解更多。問題或建議,請公衆號留言;
若是你以爲本文對你有幫助,歡迎讚揚[1]python

本文已轉載個人簡書:https://www.jianshu.com/p/4b7b4f4fb0e4git

本教程的做用

零基礎手把手教你打造一款微信機器人,包括好友聊天自動回覆和羣聊助手兩個部分,零基礎!話很少說,下面開始實戰編碼。github

第一部分:好友聊天自動回覆

第一步,安裝python環境。

打開python官網https://www.python.org/downloads/,下載與你的電腦系統相匹配的python發行版本,推薦python3.5-python3.6,版本過高了可能有許多未知的bug,過低了兼容性不太好。json

第二步,安裝itchat庫

在命令行下輸入pip install itchat完成安裝api

第三步,編寫代碼

核心代碼以下:微信

  #coding=utf8
import itchat

# 當接收到的消息是Text,即文字消息
#註冊re_msg的意義在於,告訴itchat每次有符合特定條件的消息,itchat要把消息做爲參數,去調用re_msg。
@itchat.msg_register('Text')
def text_reply(msg):
    #message:取出msg裏面的文本消息
    message = msg['Text']
    # 回覆給好友
    replay = u'肖濤已在電腦上登錄網頁微信,但暫時沒法進行交流,能夠給他發送電腦QQ消息哈'  
    #主要是一些關鍵詞設置
    # if B in A 若是 A中有B的話
    if u'幹什麼' in message:
        replay = u'在忙呢'
    elif u'逼' in message:
        replay = u'含有敏感詞彙,請注意言辭'
    elif u'生氣' in message:
        replay = u'生氣對身體很差'
    elif u'?' in  message:
        replay = u'哈哈,我也不知道'
    elif u'不理你' in message:
        replay = u'乖,忙完給你買糖吃'
    elif u'濤' in message:
        replay = u'他是我主人'
    elif u'厲害' in message:
        replay = u'不不不,辣雞一個'
    elif u'你好' in message:
        replay = u'你好哇'
    elif u'好吧' in message:
        replay = u'再見'
    return replay
#彈出掃碼登陸界面,參數這樣設置的好處是短期內退出程序,再次登陸能夠不用掃碼
itchat.auto_login(hotReload=True)
#開啓自動回覆
itchat.run()

以上代碼都是本人親自編寫,如需轉載請私信我。
代碼截至2018/11/30本人調試有效,最新的代碼更新在個人github:auto_replay.py若有問題歡迎評論。app

運行代碼

運行以後,會彈出一個二維碼,用微信掃一掃登陸網頁版微信以後,這份代碼就會接管你的消息通知。下面是一個簡單的效果圖
ide

20180331100337372.png

第二部分:羣聊助手

第一步是點對點的消息自動回覆,本部分實現的是點對多、在羣中的消息自動回覆。請確認上一部分實現無誤以後再來嘗試第二部分,由於第二部分須要第一部分的環境配置作支撐。post

編寫代碼

  import itchat
import requests
def get_response(msg):
    apiUrl = 'http://www.tuling123.com/openapi/api'   #改爲你本身的圖靈機器人的api
        'key''ce697b3fc8b54d5f88c2fa59772cb2cf',  # Tuling Key 
        'info': msg,  # 這是咱們發出去的消息
        'userid''wechat-robot',  # 這裏可隨意修改
    }
    # 經過以下命令發送一個post請求
    r = requests.post(apiUrl, data=data).json()
    return r.get('text')
@itchat.msg_register(itchat.content.TEXT)
#用於接收來自朋友間的對話消息  #若是不用這個,朋友發的消息便不會自動回覆 
def print_content(msg):
    return get_response(msg['Text'])
#用於接收羣裏面的對話消息
@itchat.msg_register([itchat.content.TEXT], isGroupChat=True)
def print_content(msg):
    return get_response(msg['Text'])
itchat.auto_login(True)
itchat.run()

接入圖靈機器人

打卡圖靈機器人官網,http://www.tuling123.com/,註冊帳號,新建一個機器人,以下圖
學習

20180718175512463.png

把圖中的apikey替換到代碼裏就行,若是你要用個人,我也沒法拒絕,畢竟個人apikey也貼出來了。

運行效果

和上一個效果圖不一樣的是,這是在一個羣裏的消息

簡要原理

一但接收到信息,就會調用get_response()方法,把消息傳給圖靈機器人,而後圖靈機器人把回覆信息再返回給微信。

截至2018/11/30代碼運行無誤,最新更新在個人github:grouphandler.py
若有問題請評論,如需轉載請私信我。

後記

本篇文章參考了個人兩篇csdn博客
https://blog.csdn.net/ygdxt/article/details/79766197
https://blog.csdn.net/ygdxt/article/details/81101020
在這裏推薦兩個python代碼倉庫:
一個是PythonLearning,這裏面有我學習python的課程學習資料、以及一些我實戰編寫的代碼,
另外一個是PythonSpider,這裏面主要是一些我寫的python實現的爬蟲。
更多的請訪問個人github,歡迎star,fork.
另外歡迎關注微信公衆號:inspurer

若是你以爲本篇文章不錯,不妨打賞一下,謝謝。

長按關注公衆號

本文分享自微信公衆號 - 月小水長(inspurer)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索