【python 应用】50行实现微信聊天机器人

开发工具

python3.7

itchat

原理讲解

做一个能够与人交流的机器人有很多种方法,最简单的莫过于使用他人提供的接口。

我们这里以图灵机器人为例,演示这一功能。

图灵机器人简单而言就是以一定的规则给图灵的服务器发送数据包(包含你对他说的话)

图灵的服务器会以一定的规则给你返回数据包(包含他回复你的话),图灵机器人的Tyling Key的获取的帮助文档http://www.tuling123.com/help/h_cent_webapi.jhtml

你需要一个Tuling Key来告诉图灵服务器你有权和他对话,我这里免费提供一些:

8edce3ce905a4c1dbb965e6b35c3834d
eb720a8970964f3f855d863d24406576
1107d5601866433dba9599fac1bc0083
71f28bf79c820df10d39b4074345ef8c

下面我做一个配置图灵机器人的简单介绍

请求方式

HTTP POST

请求参数

请求参数格式为 json

发送的规则简而言之是这样的:

{
	"reqType":0,
    "perception": {
        "inputText": {
            "text": msg,
        }
    },
    "userInfo": {
        "apiKey": KEY,
        "userId": uid,
    }
}

其中userId是用户的标志,让机器人知道你是你。(也就是一个Tuling Key可以有多个用户)

而返回的内容基本是这样的:

{
‘intent‘: {‘code‘: xxx},
‘results‘: [{‘groupType‘: 0, ‘resultType‘: ‘text‘, ‘values‘: {‘text‘: ‘xxx‘}}]
}

我们需要的内容就在values键的text键里面。

这里我们使用requests包完成整个操作(已经包含在itchat包的安装中了)。

最后值得一提的就是这是一个post请求,那么直接上代码应该比我絮絮叨叨的说要直观很多。

# -*- coding: utf-8 -*-
import json
import time
import requests
import itchat

#Turling_key
KEY = ‘54d7869f48ff4f1f8d856d52d3c7cdf2‘

def get_response(msg):
    ‘‘‘
    发送数据包给图灵服务器
    ‘‘‘
    apiUrl = ‘http://openapi.tuling123.com/openapi/api/v2‘
    #动态生成userid
    uid = ‘rrh‘
    #字典转json
    data ={
    "reqType":0,
    "perception": {
        "inputText": {
            "text": msg,
        }
    },
    "userInfo": {
        "apiKey": KEY,
        "userId": uid,
    }
}
    
    try:
        data_json = json.dumps(data)
        response = requests.post(apiUrl,data=data_json).json()
        print(response)
        return response[‘results‘][0][‘values‘][‘text‘]
    except:
        return

#处理消息并自动回复
@itchat.msg_register(itchat.content.TEXT)
def tuling_reply(msg):
    #默认回复
    defaultReply = ‘【{}】,这句话俺听不懂啦‘.format(msg[‘Text‘])
    FromUserName = msg[‘FromUserName‘]
    reply = get_response(msg[‘Text‘])

    if reply:
        itchat.send(reply,toUserName=FromUserName)
    else:
        itchat.send(defaultReply,toUserName=FromUserName)

if __name__ == ‘__main__‘:
    itchat.auto_login(hotReload=True)
    itchat.run()

原文地址:https://www.cnblogs.com/rrh4869/p/11219513.html

时间: 2024-11-06 14:23:59

【python 应用】50行实现微信聊天机器人的相关文章

微信聊天机器人

本文目录 一 简介 二 登录微信 三 微信好友男女比例 四 微信好友地域分布 五 微信聊天机器人 回到目录 一 简介 wxpy基于itchat,使用了 Web 微信的通讯协议,,通过大量接口优化提升了模块的易用性,并进行丰富的功能扩展.实现了微信登录.收发消息.搜索好友.数据统计等功能. 总而言之,可用来实现各种微信个人号的自动化操作.(http://wxpy.readthedocs.io/zh/latest/bot.html) 安装:wxpy 支持 Python 3.4-3.6,以及 2.7

微名汇-微信公众平台功能开发(微信聊天机器人)

因为现在小黄鸡智能聊天机器人接口能免费试用7天,7天之后会收费这对于很多用户来说感觉不划算.所以我找了另一个接口:小i机器人,并且完全免费.本文介绍如何在微信公众平台中使用小i智能聊天api接口开发智能聊天机器人. 小i机器人是全球用户量最大的中文聊天机器人,最早在MSN上出现,后拓展到QQ.短信.网页等交互平台上,拥有超过1亿的用户.2012年2月,小i机器人整合了自然语音识别功能,并陆续发布了智能手机.智能电视以及电话上的语音交互版本. 小i机器人申请地址为http://cloud.xiao

分分钟搭建自己的微信聊天机器人

利用图灵机器人分分钟搭建自己的微信聊天机器人 需要准备的资源: 图灵机器人账号 微信公共账号 点击访问 图灵机器人官网,快快注册,拥有自己的聊天机器人,可以在这里先体验一下 今天主要简述微信公共平台聊天机器人的搭建,首先需要注册微信公共账号,之后在图灵机器人网站上登录你的图灵账号,可以看到如截图所示的界面,在"机器人设定"界面可以进行机器人昵称.年龄.性别等信息的设定,在"机器人调教"界面可以教你的机器人回答特定问题,"知识库"可以导入知识库,增

自己动手做个微信聊天机器人

长夜慢慢无人聊天, 自己动手做个微信聊天机器人陪自己. 智力太低, 还是让他调戏别人吧. 看了上面的动画图片是不是有人好奇程序是怎么实现的? 解决方案其实很简单: 1. 通过微信的web接口可以实现自动回复.登录.发图片.自动加好友等等的功能, 你可以通过wx.qq.com调试得到接口,当然也可以通过baidu搜索到别人已经弄到的api. 我这里主要用到了登录.扫马登陆.同步联系人.同步消息接口.掉线自动重连.获取图片.获取头像.获取微信群成员.发送图片.发送表情.发送mp3. 撤回消息.发送文

微信聊天机器人开发 java源代码 免费接口 图灵机器人

微信聊天机器人开发  java 图灵机器人提供免费接口,并且支持java语言开发,同时提供开发说明: 图灵机器人开发说明连接: http://www.tuling123.com/openapi/cloud/access_api.jsp 实例: /** 调用图灵机器人平台接口 */ public static void main(String[] args) throws IOException { String APIKEY = "开发者注册帐号,激活之后即可获得"; String I

使用图灵机器人api搭建微信聊天机器人php实现

之前通过hook技术实现了微信pc端发送消息功能,如果在结合图灵机器人就能实现微信聊天机器人. 代码下载:http://blog.yshizi.cn/131.html 逻辑如下: 下面我简单介绍一下步骤. 首先,你需要下载我的微信助手,下载地址请参考我的博客文章: 通过对微信pc hook实现微信助手. 申请图灵机器人,并认证.申请地址,使用api接入并获取apikey(详细请参考图灵机器人官网) . 使用php实现访问图灵机器人api. php实现代码如下: <?php class Tulin

三步轻松打造微信聊天机器人(附源码)

最近微信公众平台开发是热门,我也跟风做了一个陪聊的公众号. 其实类似的自动回话程序早就有了,比如前一阵很火的小黄鸡(还是小黄鸭来着?).但尽管是跟风,也要体现一些不同.别人做的都是中文陪聊,咱就来做个英语陪聊. 不管是中文还是英文,做起来都一样,都是利用网络上的接口.或者你也可以试着自己开发一个陪聊程序. 随便在网上搜了一个英语聊天机器人的网址:http://www.pandorabots.com/pandora/talk?botid=f5d922d97e345aa1   咱们就利用这个网址来做

【Py大法系列--01】20多行代码生成你的微信聊天机器人

前言 近期Stack Overflow公布了一项调查显示,Python已经成了发展最快的主流编程语言,Python搭乘着数据科学和机器学习以及人工智能的浪潮,席卷了整个技术圈.越来越多的人想了解.想学Python,从程序猿到数据分析师,从已退休的耄耋老者到乳臭未干的小学生,是的,你没听错,有图有真相:到底Python的魅力在于哪?到底它有着什么神奇的力量?尼克决定以一个较为轻松的专题,带大家认识Python. 今天干什么 有天刚好发现了一个好玩的Python库(活跃的开源社区,各种第三方库也是P

python微信聊天机器人改进版,定时或触发抓取天气预报、励志语录等,向好友推送

最近想着做一个微信机器人,主要想要实现能够每天定时推送天气预报或励志语录,励志语录要每天有自动更新,定时或当有好友回复时,能够随机推送不同的内容.于是开始了分析思路.博主是采用了多线程群发,因为微信对频繁发送消息过快还会出现发送失败的问题,因此还要加入time.sleep(1),当然时间根据自身情况自己定咯.本想把接入写诗机器人,想想自己的渣电脑于是便放弃了,感兴趣的可以尝试一下.做完会有不少收获希望对你有帮助. (1)我们要找个每天定时更新天气预报的网站,和一个更新励志语录的网站.当然如果你想