【Python】30行代码教你将微信变成智能回复机器人

时间:2022-05-05
本文章向大家介绍【Python】30行代码教你将微信变成智能回复机器人,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

摘要:使用微信itchat接口和图灵机器人接口,三十行代码将你的微信变成聊天机器人,自动回复来自好友的消息。

01

itchat安装与使用说明

  1. itchat安装 简单安装:pip install itchat 源码安装(下载地址):https://pypi.python.org/pypi/itchat#downloads windows:下载whl包,直接pip install *.whl即可;Linux 下载tar.gz包运行setup.py即可。
  2. itchat使用说明

具体详情可以参见官方网站:https://github.com/littlecodersh/ItChat

itchat是一个开源的微信个人号接口,提供很多功能能帮助你处理微信消息,扩展微信功能。

(1)发送消息给文件助手

import itchat
itchat.auto_login()
itchat.send('Hello, filehelper', toUserName='filehelper')

(2)回复文本信息,当收到好友给你发的文本信息时,返回该消息的内容。注意:itchat.content.TEXT就表示文本信息,相应的还有MAP、CARD、SHARING等消息类型,分别表示发送的是地图、名片、分享的内容等。

import itchat
@itchat.msg_register(itchat.content.TEXT)
def text_reply(msg):
    return msg.text
itchat.auto_login()
itchat.run()

02

图灵机器人接口

通过第一部分的描述,我们知道了通过ITchat可以返回好友发送的消息内容。这里只需要将该消息内容替换成聊天机器人的内容就可以实现微信的自动回复了。我们选用图灵机器人的接口(注册开发者,一天有1000次免费调用机会),链接地址http://www.tuling123.com/。具体使用,需要获得KEY值,访问该网站的web api,得到返回内容即可,如下所示:

KEY = '8edce3ce905a4c1dbb965e6b35c3834d'
def get_response(msg):
  apiUrl = 'http://www.tuling123.com/openapi/api'
  data = {
    'key'  : KEY,
    'info'  : msg,
    'userid' : 'pth-robot',
  }
  try:
    r = requests.post(apiUrl, data=data).json()
    return r.get('text')
  except:
    return

得到的聊天机器人聊天过程:

03

完整代码

使用说明:运行代码后出现微信二维码,需要扫码才能登陆。

# -*- coding: utf-8 -*-
import sys
reload(sys)
sys.setdefaultencoding( "utf8" )
import itchat 
import requests
from itchat.content import *
KEY = '8edce3ce905a4c1dbb965e6b35c3834d'
def get_response(msg):
  apiUrl = 'http://www.tuling123.com/openapi/api'
  data = {
    'key'  : KEY,
    'info'  : msg,
    'userid' : 'pth-robot',
  }
  try:
    r = requests.post(apiUrl, data=data).json()
    return r.get('text')
  except:
    return
#自动回复文本消息
@itchat.msg_register([TEXT,MAP,CARD,NOTE,SHARING], isGroupChat=False)
def text_reply(msg):
    #print msg['Text']
    defaultReply = 'I received: ' + msg['Text']
    reply = get_response(msg['Text'])
    itchat.send(reply or defaultReply,msg['FromUserName'])
#自动回复图片消息
@itchat.msg_register(PICTURE, isGroupChat=False)
def download_files(msg):
    itchat.send('%s: %s' % (msg['Type'], msg['Text']), msg['FromUserName'])
# 扫二维码登录
itchat.auto_login(hotReload=True)
itchat.run()