python 微信机器人_Python 微信机器人

一、写在前边的话

如何做一个自动回复的微信机器人?机器人的功能有,自动加好友,关键字回复,等等,它甚至可以成为你的私人管家,只要你的代码到位。今天,主要讲解下,微信机器人-图灵版。

二、准备

1.python 环境(这是必备的,建议3.6)

2.图灵机器人 key

简单说下 key 的获取,注册网址(http://www.tuling123.com/),注册后选择一个机器人类型,比如:

e710ed76c35c

image

设置好机器人后,就可以获取到了我们想要的 apikey

e710ed76c35c

image

需要注意的事,新手版每天只能回复 1000条,有更多的需求,具体请看官网。

e710ed76c35c

image

三、代码逻辑

先讲讲原理吧,自动回复机器人,主要使用的事itchat的py库,这个库很强大,以后会将它的具体使用,比如防撤回机制,关键字回复,私人管家等等等,itchat 获取到了信息,将A发送的内容发送到图灵后台,进行一次网络数据请求,在将请求回来的数据发到A上。回复的内容是由图灵控制的,免费版,我们也不能自定义回复内容。

四、代码展示

纯净版

#coding=utf8

import requests

import itchat

# KEY5 = '97dcfc0273ae4636951391819c372a39' #换成自己的key

from itchat.content import FRIENDS

def get_response(msg):

apiUrl = 'http://www.tuling123.com/openapi/api'

data = {

'key' : KEY5,

'info' : msg,

'userid' : 'wechat-robot',

}

try:

r = requests.post(apiUrl, data=data).json()

return r.get('text')

except:

return

@itchat.msg_register(itchat.content.TEXT)

def tuling_reply(msg):

defaultReply = 'I received: ' + msg['Text']

reply = get_response(msg['Text'])

return reply or defaultReply

@itchat.msg_register(FRIENDS)

def add_friend(msg):

itchat.add_friend(**msg['Text'])

itchat.send_msg('Nice to meet you!', msg['RecommendInfo']['UserName'])

itchat.login()

itchat.run()

注释版

#coding=utf8

import requests

import itchat

# KEY5 = '97dcfc0273ae4636951391819c372a39'

from itchat.content import FRIENDS

KEY5 = '43b32e225ff34302a2c73ef4a5e790d5'

def get_response(msg):

# 这里我们就像在“3. 实现最简单的与图灵机器人的交互”中做的一样

# 构造了要发送给服务器的数据

apiUrl = 'http://www.tuling123.com/openapi/api'

data = {

'key' : KEY5,

'info' : msg,

'userid' : 'wechat-robot',

}

try:

r = requests.post(apiUrl, data=data).json()

# 字典的get方法在字典没有'text'值的时候会返回None而不会抛出异常

return r.get('text')

# 为了防止服务器没有正常响应导致程序异常退出,这里用try-except捕获了异常

# 如果服务器没能正常交互(返回非json或无法连接),那么就会进入下面的return

except:

# 将会返回一个None

return

# 这里是我们在“1. 实现微信消息的获取”中已经用到过的同样的注册方法

@itchat.msg_register(itchat.content.TEXT)

def tuling_reply(msg):

# 为了保证在图灵Key出现问题的时候仍旧可以回复,这里设置一个默认回复

defaultReply = 'I received: ' + msg['Text']

# 如果图灵Key出现问题,那么reply将会是None

reply = get_response(msg['Text'])

# a or b的意思是,如果a有内容,那么返回a,否则返回b

# 有内容一般就是指非空或者非None,你可以用`if a: print('True')`来测试

return reply or defaultReply

# 收到好友邀请自动添加好友

@itchat.msg_register(FRIENDS)

def add_friend(msg):

itchat.add_friend(**msg['Text']) # 该操作会自动将新好友的消息录入,不需要重载通讯录

itchat.send_msg('Nice to meet you!', msg['RecommendInfo']['UserName'])

# 为了让实验过程更加方便(修改程序不用多次扫码),我们使用热启动

itchat.login()

# itchat.auto_login(hotReload=True)

itchat.run()

五、总结

以上就是微信机器人的简单应用,你学会了么?itchat 真的是一个特别吊的库,我们下一期讲微信防撤回。

如果你对微信机器人的使用有问题,欢迎公众号留言,我的公众号是MAndroid,我会尽心的为你解答的,我是Lovesosoi,一个集Android 与 python 技术于一身的开发者。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/468157.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux 控制台存储,技术|使用 Stratis 从命令行管理 Linux 存储

通过从命令行运行它,得到这个易于使用的 Linux 存储工具的主要用途。正如本系列的第一部分和第二部分中所讨论的,Stratis 是一个具有与 ZFS 和 Btrfs 相似功能的卷管理文件系统。在本文中,我们将介绍如何在命令行上使用 Stratis。安装 Strati…

你想要的江湖,可能不在这时候笑傲

昨天看知识星球看到的一个码农的经历,然后我看了,也回答了,想把回答分享给大家,我觉得这应该是很多人都会遇到的。困扰的问题潜水这么久,有一个问题想问一下,帅张。可能有点啰嗦。就是在一家公司做开发&…

mysql binlog 备份_MySQL的binlog知识梳理

1、binlog概念:binlog是一个二进制格式的文件,用于记录“修改数据或可能引起数据变更”的SQL语句(查询的SQL不会记录)。2、binlog功能:(1)恢复: 利用binlog日志恢复数据库数据。(2)复制: 主从架构通过binlog同步数据。(3)审计: 可以用binlog中的信息进行审计&#x…

你需要知道的Linux 系统下外设时钟管理

嵌入式系统一般要求低功耗,出于这个原因,一般只把需要使用到的外设时钟源打开,其他不需要使用到的模块,则默认关闭它们。LCD 模块,上电时候默认情况是关闭的,所以,要想使用 LCD 模块&#xff0c…

千万级大表如何更快速的创建索引_分享一份生产环境mysql数据库大表归档方案,值得收藏...

概述分享下最近做的一个mysql大表归档方案,仅供参考。整体思路一、明确哪些大表需做归档1、数据库表概要信息统计SELECTt1.table_schema,t1.table_name,ENGINE,table_rows,CAST( data_length / 1024.0 / 1024.0 AS DECIMAL ( 10, 2 ) ) data_size(M),CAST( index_le…

载波和LoRa

最近lora这个很火,火的原因是因为国家出了一个政策,这个政策呢,有很多人解读了,我身边也有好几个朋友做这方面的,然后我今天找他们聊了下,得到的结果是,这个政策肯定是或多或少对现在的行情和市…

imread函数 matlab_【MATLAB图像处理学习】1.读取和显示图片

CHAPTER2 图像处理的基础函数【使用的教材:冈萨雷斯 数字图像处理MATLAB(Digital image processing with Matlab】【原书图片下载地址:点这里】先介绍三个MATLAB中图片基本操作:imread imshow imwrite2.2读取图片imread(filename)imread是读取…

一场不能只看结果的较量

林书豪的比赛看得真的很舒服,虽然输掉了比赛,但是看到两边不断改变打法,不断试图侵犯对方的夺取分数,就好比看了一场战争电影,过程酣畅淋漓,结果差点令人满意。第一节广东的双后卫给北京制造了非常多的麻烦…

嘻哈帝国第一季/全集Empire迅雷下载

英文译名Empire,第1季(2015-01-08)FOX.本季看点:《嘻哈帝国》卢西奥斯莱恩是一名超级音乐明星兼Empire娱乐公司的创始人,故事讲述了他如何在困境和失败中运营公司的故事。拥有庞大帝国的老板得了绝症,于是他决定培养继承人&#x…

cassandra可视化工具_一位数据科学家的私房工具清单

作为一位万人敬仰的数据科学家,不但需要培育一棵参天技能树,私人武器库里没有一票玩得转的大火力工具也是没法在江湖中呼风唤雨的。近日北卡来罗纳大学CTO,一位数据科学家Jefferson Heard分享了多年来收集沉淀的数据分析工具集:处…

Dev C++,一个好玩的猜数字游戏

周末了,看了一点代码,发现有一个好玩的数字游戏,贡献给大家,个人觉得还是挺好玩的。说个题外话,之前写的文章,都是零散的,主要是时间的原因,最近事情有点杂,一说到这个事…

[BZOJ 2500] 幸福的道路

照例先贴题面(汪汪汪) 2500: 幸福的道路 Time Limit: 20 Sec Memory Limit: 256 MBSubmit: 368 Solved: 145[Submit][Status][Discuss]Description 小T与小L终于决定走在一起,他们不想浪费在一起的每一分每一秒,所以他们决定每天早上一同晨练来享受在一…

你手上的PCB怎么制作的?几张动图揭晓工厂生产流程

在PCB出现之前,电路是通过点到点的接线组成的。这种方法的可靠性很低,因为随着电路的老化,线路的破裂会导致线路节点的断路或者短路。绕线技术是电路技术的一个重大进步,这种方法通过将小口径线材绕在连接点的柱子上,提…

linux开发板作为蓝牙音箱,USB 蓝牙适配器在ARM 开发板下的使用

4、可能出现的问题和解决方案:4.1 编译dbus 时出现:1checking for accept4... yeschecking abstract socket namespace... nochecking for pkg-config... (cached) /usr/local/bin/pkg-configchecking pkg-config is at least version 0.9.0... yescheck…

细丝极恐的华为251事件

事情的来龙去脉我就不再详细描述了,我提几个问题点,觉得有点疑惑,也是自己对这个事件的看法。1、李洪元于2005年入职华为,2018年1月离职,在2016年11月21日向公司的投诉邮箱发了一份匿名邮件,至于发邮件的东…

mysql set语句_mysql--乱码解决(6)

1.字符集介绍mysql数据库字符集包括字符集(character)和校对规则(collation)两个概念,其中字符集是用来定义mysql数据字符串的存储方式,而校对规则则是定义比较字符串的方式。2.常见字符集3.解决中文乱码思想:保持linux、服务端、库、表、客户…

C 语言,你真的懂递归了吗?

什么是递归?要说到递归如果不说栈的话,我觉得有点不合适,递归特点就是不断的调用同一个函数,如果这个函数没有一个递归界限,那么就是死循环了,所以讨论递归,就必须要讨论递归的界限,…

github page hexo博客gitee_利用Github和hexo搭建个人免费博客

利用Github和hexo搭建个人免费博客详细过程:概述:详细的介绍了利用github和hexo搭建免费的博客,内容详细,浅显易懂,容易上手,大家一起进来看看吧!1、配置Github相关操作:​ ①新建一…

漫画:三种 “奇葩” 的排序算法

在算法的世界里,有许多高效率的排序算法,比如快速排序、归并排序、桶排序......它们大大提高了程序的性能。但是,也有一些比较奇葩的排序算法,它们既不能做到高效率,也没有很好的可读性。那它们存在的意义是什么呢&…

常用c语言小程序,c语言经典小程序汇总大全

网上有很多的人说编程有多么多么无聊,其实:不要管别人怎么说,别人说什么,做你自己喜欢做的事就好。坚持下来,你会发现编程的乐趣的。当然,如果你觉得学习编程语言很痛苦,坚持了一段时间后无果&a…