Python 實現圖靈微信機器人

weixin_34185320發表於2019-01-18

最近看了下python,總感覺如果一直搞前端的東西,缺乏新鮮感。
首先擼了一遍python的基本語法
其實就可以開搞了。
這裡用的是我用的是python3 ,mac自帶python2.7,但是這兩個是可以共存的~,千萬不要刪了mac自帶的python,因為裡面好多東西都是基於這個版本來實現的。

言歸正傳,要實現微信機器人首先肯定是基於python,這就需要itchat 這個庫
wiki在這裡https://itchat.readthedocs.io/zh/latest/intro/handler/

pip3 install itchat

還是相當好玩的。

先匯入需要用到的庫

from itchat.content import *
import requests
import json
import itchat

然後呼叫圖靈的api,根據訊息呼叫介面返回資料

def tuling(info):
  appkey = "ffeeed42668044478b82261c341268ab"
  url = "http://www.tuling123.com/openapi/api?key=%s&info=%s"%(appkey,info)
  req = requests.get(url)
  content = req.text
  data = json.loads(content)
  answer = data['text']
  return answer

對於單個使用者的機器人回覆,需要用itchat.msg_regist註冊回撥方法,當有人跟你說話的時候,就會回撥這個方法,自動回覆。

@itchat.msg_register([TEXT,MAP,CARD,NOTE,SHARING])
def text_reply(msg):
  itchat.send('%s' % tuling(msg['Text']),msg['FromUserName'])

然後是針對群訊息自動回覆的

def group_id(name):
  df = itchat.search_chatrooms(name=name)
  return df[0]['UserName']

@itchat.msg_register(TEXT, isGroupChat=True)
def group_text_reply(msg):
  # 當然如果只想針對@你的人才回覆,可以設定if msg['isAt']: 
  item = group_id(u'社會主義的接盤人') # 根據自己的需求設定
  print(item)
  print(msg)
  if msg['FromUserName'] == item:
    
    itchat.send(u'%s' % tuling(msg['Text']), item)

最後呼叫啟動程式碼,來吊起二維碼登入就可以實現微信機器人了。

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

指令碼地址

一把梭過來,在終端執行 python3 groupChat.py

相關文章