【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()

原文发布于微信公众号 - CodeInHand(CodeInHand)

原文发表时间:2018-01-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏13blog.site

微信公众号问题:{"errcode":40125,"errmsg":"invalid appsecret, view more at http:\/\/t.cn\/LOEdzVq, hints: [

在调试微信公众号授权登录时遇到了这个错误,着实是心烦了半天,公众号相关开发以前是经常做的,很久没有接触了,而且遇到了这么个以前没遇到的问题。 {"errcode...

6766
来自专栏about云

kafka sql入门

问题导读 1.kafka sql与数据库sql有哪些区别? 2.KSQL有什么作用? 3.KSQL流和表分别什么情况下使用?

2222
来自专栏数据和云

在线重定义生产环境大表分区的惨烈踩雷记录

本文来源于读者投稿,作者在此分享在线重定义生产环境大表分区的惨烈踩雷记录,感谢投稿,欢迎大家投稿分享自己日常中“难忘”的解决过程。

1703
来自专栏about云

比Hive快279倍的数据库-ClickHouse到底是怎样的

1.什么是ClickHouse? 2.ClickHouse适合哪些场景? 3.为什么面向列的数据库查询如此快? 1.什么是ClickHouse ClickHo...

3314
来自专栏数据和云

藏在表分区统计信息背后的小秘密

作者介绍 ? 曾令军 云和恩墨技术专家,8年数据库运维经验。思维敏捷,擅长于数据库开发、解决棘手的数据库故障和性能问题,在数据库故障诊断、运维监控、性能优化方面...

2725
来自专栏架构之美

MongoDB在58同城的应用实践

1653
来自专栏芋道源码1024

Dubbo 源码解析 —— Zookeeper 创建节点

前言 在之前dubbo源码解析-本地暴露中的前言部分提到了两道高频的面试题,其中一道 dubbo中zookeeper做注册中心,如果注册中心集群都挂掉,那发布者...

3956
来自专栏逸鹏说道

ASP.NET + SqlSever 大数据解决方案 PK HADOOP

ASP.NET + SqlSever 大数据解决方案 PK HADOOP 半个月前看到博客园有人说.NET不行那篇文章,我只想说你们有时间去抱怨不如多写些实在的...

4597
来自专栏Java进阶架构师

dubbo专题-深入分析zookeeper创建节点过程(高清大图无水印版)

在之前dubbo源码解析-本地暴露中的前言部分提到了两道高频的面试题,其中一道dubbo中zookeeper做注册中心,如果注册中心集群都挂掉,那发布者和订阅者...

2282
来自专栏cmazxiaoma的架构师之路

电商毕业设计小节

2125

扫码关注云+社区

领取腾讯云代金券