前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Python】30行代码教你将微信变成智能回复机器人

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

作者头像
CodeInHand
发布2018-03-26 11:45:29
2.7K0
发布2018-03-26 11:45:29
举报
文章被收录于专栏:Pytorch实践

摘要:使用微信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)发送消息给文件助手

代码语言:javascript
复制
import itchat
itchat.auto_login()
itchat.send('Hello, filehelper', toUserName='filehelper')

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

代码语言:javascript
复制
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,得到返回内容即可,如下所示:

代码语言:javascript
复制
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

完整代码

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

代码语言:javascript
复制
# -*- 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()
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-01-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 CodeInHand 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档