• 前景:

我在知乎关注一位大佬 名字叫 LittleCoder

我是在他开发ItChat包时关注的

ItChat已经完成了微信的个人账号的API接口

已经实现了实时获取用户的即时信息并自动化进行回应

后来又看到了国内的人工智能机器人团队TURING ROBOT研发的智能机器人

并提供了给开发者的详尽的API调用文档

既是说

个人账号可以通过ItChat获取即时消息 并实时通过图灵机器人的API得到反馈发送出去

再简单点就是说 使用这两者 构建了一个微信端的智能机器人

  • 环境搭建

  0.首先需要一个个人的微信号、有网的电脑、手机

  1.下载安装Python

    这里推荐一个发行版的Python 并且全平台支持

    下载地址:https://www.anaconda.com/download

    截至目前 该发行版已经支持了Python3.7 同时也提供2.7版本

    在终端中输入 python 查看当前python是否安装成功 有图下反馈 即是成功安装(版本号无所谓)

    

    2.下载安装pip

    pip 是 Python 包管理工具,该工具提供了对Python 包的查找、下载、安装、卸载的功能

    在终端中输入如下命令来判断是否有安装pip

    若有安装 则会反馈版本号

    

pip --version

    若没有安装 则运行如下命令

$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py   # 下载安装脚本
$ sudo python get-pip.py    # 运行安装脚本

    

    3.下载安装ItChat

pip install itchat

    若pip与Python安装没有错误 itchat应该很顺利的就下载安装完毕了

    4.获取图灵机器人

    在图灵机器人官网 http://www.tuling123.com 注册账号

    

    随便填写就好了

    在如下界面 得到每一个机器人的专属Key 类似于机器人的身份证

    如图:
    

    在人物设置中 根据个人情况设置机器人的属性

  • 配置机器人

    在图灵机器人的接入API文档中得到相关信息

    https://www.kancloud.cn/turing/www-tuling123-com/718227

    通过分析 得到他的使用方法:

    首先向API发送你的三个信息:你的机器人KEY、向机器人发送的信息、用户标识。

    将这三个信息打包成一个Post请求发送

    就可以得到机器人的回复

    测试代码:

    text1.py

    

from importlib import reload
import sys
reload(sys)import requests
import itchatapiUrl = 'http://www.tuling123.com/openapi/api'
data = {'key'    : 'key请手动替换', 'info'   : 'hello',          # 这是我们发出去的消息'userid' : 'wechat-robot',      # 这里你想改什么都可以
}
# 我们通过如下命令发送一个post请求
r = requests.post(apiUrl, data=data).json()# 让我们打印一下返回的值,看一下我们拿到了什么
print(r)

    

    在idle中运行:
    

    我们向机器人机器人发送了 hello

    机器人向我们回复了 你好

    证明我们成功实现了与机器人的交流

    下一步 只需要从微信读取与发送数据就行了

    优化部分内容

    text2.py

 1 # coding=utf8
 2 import requests
 3 import itchat
 4
 5 KEY = '填写你的key'
 6
 7
 8 # 请求图灵机器人并得到返回消息
 9 def get_response(msg):
10     apiUrl = 'http://www.tuling123.com/openapi/api'
11
12     data = {
13         'key': KEY,
14         'info': msg,
15         'userid': 'Joeric07'
16     }
17
18     try:
19         r = requests.post(apiUrl, data=data).json()
20         return r.get('text')
21     except:
22         return

    提供了一个外部接口 用户输入的信息保存为msg 一次请求将key、msg、id一同发送 得到文本回复

  • 配置微信接口

    微信有一个文件助手 用来给自己收发文件 也可以输入文字

    尝试1:我们尝试使用python来登陆自己的微信 并通过itchat来给自己的文件助手发送一条信息

    text1_send_to_filehelper.py

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

    第二行代码执行时 会生成一个二维码 使用手机登录微信扫描二维码 即可登录

    文件助手的id是 filehelper

    运行后 可以在手机查看到 自己已经给文件助手发送了一条消息"Hello,filehelper"

    尝试2:在微信中回复收到的消息

    text2_relpy_msg.py

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

    以上代码将登录者的微信收到的私聊消息原封不动的返回发送回去

    使用修饰器将text_reply(msg)作为参数给itchat.msg_register(itchat.content.TEXT)

    即相当于itchat.msg_register(itchat.content.TEXT(text_reply(msg)))

    尝试3:在微信群聊中回复被@的信息

    text3_reply_@msg.py

import itchat@itchat.msg_register(itchat.content.TEXT, isGroupChat=True)
def text_reply(msg):
if msg['isAt']:
reply = msg['Text']
itchat.send(u'@%s\u2005 %s' % (msg['ActualNickName'], reply), msg['FromUserName'])itchat.auto_login()
itchat.run()

    以上代码将在微信群聊中 当检测到登录者被@ 且@后有信息时 返回信息

    返回信息为 @发送者 信息

    信息为发送者@登录者后的信息

  • 结合
 1 # coding=utf8
 2 import requests
 3 import itchat
 4
 5 KEY = '在此填入key'
 6
 7
 8 # 请求图灵机器人并得到返回消息
 9 def get_response(msg):
10     apiUrl = 'http://www.tuling123.com/openapi/api'
11
12     data = {
13         'key': KEY,
14         'info': msg,
15         'userid': 'Joeric07'
16     }
17
18     try:
19         r = requests.post(apiUrl, data=data).json()
20         return r.get('text')
21     except:
22         return
23 # 微信私聊回复
24 @itchat.msg_register(itchat.content.TEXT)
25 def tuling_reply(msg):
26     default_reply = 'I received: ' + msg['Text']
27     #调用图灵机器人
28     reply = get_response(msg['Text'])
29     return reply or default_reply
30
31 # 微信群聊回复
32 @itchat.msg_register(itchat.content.TEXT, isGroupChat=True)
33 def text_reply(msg):
34     if msg['isAt']:
35         # 调用机器人
36         reply = get_response(msg['Text'])
37         itchat.send(u'@%s\u2005: %s' % (msg['ActualNickName'], reply), msg['FromUserName'])
38
39 itchat.auto_login(hotReload=True)
40 itchat.run()    

    

    ok好了能跑了 而且响应速度还挺快 基本上秒回了

    不过现阶段的缺点是 不支持表情 emoj表情会被解读成无法识别的字典形式的英文

    itchat可以自动根据文件类别做出回复 应该可以本地建立一个万金油式的表情包库

    在遇到无法解读的情况时 随机发送一个即可

    

转载于:https://www.cnblogs.com/Joeric07/p/9781469.html

ItChat与图灵机器人的结合相关推荐

  1. itchat与图灵机器人简单使用

    1.前言 本文章纯属娱乐,做的很简单,故不做较多描述 2.参考资料 感兴趣同学可以通过https://wxpy.readthedocs.io/zh/latest/这篇文章进行学习,不过只是基础部分 3 ...

  2. itchat微信调用图灵机器人API

    #coding=utf8 import requests import itchatKEY5 = 'fe55deeb23447c3a42c6665633507e6'def get_response(m ...

  3. 图灵机器人调用数据恢复_python:用itchat打造属于自己的微信聊天机器人,24小时运行...

    前几天逛GitHub看见python上的一个开源项目itchat,可以用来丰富个人微信号或者微信公众号,于是乎点进去看了看, 这是成功的示意图: 下面来具体介绍一下. 一.对itchat的调用 (源码 ...

  4. 使用Pyhton+ItChat+图灵机器人扩展微信功能

    教程使用到: Python 3.6.5 ItChat 图灵机器人 已经实现的功能: 微信消息记录,撤回消息查看 发送指令召唤机器人 开关电脑.远程控制电脑拍照摄像并发送图像 将要实现的功能: 在妹子起 ...

  5. 机器人编程语言python-个人微信接入图灵机器人(基于Python)

    开发环境:Ubuntu14.04 编程语言:Python2.7 1.在图灵机器人官网(http://www.tuling123.com)注册账号,创建机器人,如果只是学习的话,可以使用免费版,一个账号 ...

  6. Python 微信机器人:属于自己的微信机器人制作,简单易懂。图灵机器人接口api调用

    首先你需要安装 itchat 库. 进入 cmd,先直接 pip install itchat 就好了. 我调的是图灵机器人的接口,可以了解一下: 图灵机器人的注册,图灵机器人api获取方式 微信机器 ...

  7. 图灵机器人调用数据恢复_机器人也能撩妹?python程序员自制微信机器人,替他俘获女神芳心...

    机器人也有感情 还记得王传君饰演的<星语心愿之再爱>这部电影吗?王传君饰演的天才程序员"王鹏鹏"因工作原因不能陪伴照顾身在异地的女朋友"林亦男",呆 ...

  8. python实现图灵机器人帮你回复微信好友消息

    python实现图灵机器人帮你回复微信好友消息 ''' Created on 2018年4月26日@author: cvv54 '''#引入itchat包获取微信消息 import itchat fr ...

  9. Python中的图灵机器人

    首先在图灵机器人的官网注册一个帐号,然后创建一个机器人,接下来进行下面的操作,就可以与机器人进行对话了. 代码块: import requestsdef get_tuling_respose(_inf ...

最新文章

  1. JMeter进阶系列01--JMeter二次开发
  2. 2021年计算机专业工作规划,2021年小学电脑室工作计划
  3. 金融领域下的数据挖掘算法应用:AdaBoost模型摩天
  4. H3 BPM MVC表单SheetOffice控件使用分享
  5. 阿里内推算法岗位编程笔试题
  6. 【炼丹技巧】指数移动平均(EMA)【在一定程度上提高最终模型在测试数据上的表现(例如accuracy、FID、泛化能力...)】
  7. python生成倒计时图片_python pygame--倒计时
  8. php画弧,75、PHP图像处理之画圆、弧线、网站饼状统计图绘制
  9. 【中国农业银行风险管理部总经理 田继敏】筑牢IT风险第二道防线 保障银行信息科技安全
  10. 【CAD】天河云cad,剖面线/细线已经改变图层,颜色却不变的问题
  11. mug网络用语_日常聊天常见网络用语(Daily chat common Internet slang).doc
  12. 生产环境服务端报错:阿里云IOT连接中断
  13. 华为5500v3多路径linux6,使用Linux自带多路径multipath
  14. MacBook网络连接正常无法访问网页
  15. SQL入门之第十七讲——子查询
  16. 用java画一个小猪佩奇_python 画个小猪佩奇
  17. nginx转发http请求
  18. 【电子】Baseband Signal and Passband Signal
  19. QT--HTTP图片下载器
  20. 目标检测:YOLO V1、YOLO V2、YOLO V3 算法

热门文章

  1. java-println连接
  2. 解决cmd命令查看python版本“python不是内部命令或外部命令,也不是可执行程序解决方案”的问题
  3. VScode配置prettier和eslint
  4. Springboot解决IDEA读取properties配置文件的中文乱码问题
  5. 浅析网站过度优化的成因应如何规避?
  6. java mqtt 断开连接,可以将MQTT Paho客户端断开连接吗?
  7. aba会导致问题_为什么说第三方仓储企业再专业也会导致很多库存问题呢?
  8. xml 里设置变量_[技巧] ApiPost操作设置
  9. vmware 12.5.3 linux,vmware12如何安装linux|opensuse42.3系统安装教程
  10. 手机linux登陆密码忘了怎么办,忘记linux登陆密码重置的方法