Python 实现图灵微信机器人

2019-01-18  本文已影响21人  butterflyer

最近看了下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

上一篇下一篇

猜你喜欢

热点阅读