Python如何调企业微信接口发送消息

首先来本文用到的开发环境如下:

前言

虽然此前公众号从未涉及有关工作上的技术文章,但是发现公众号可以用来记录学习的轨迹和笔记,还可以用来跟志同道合的人一起学习和交流,我始终认为技术在于分享和交流,才能有所进步。所谓学无止境,技无所精。

进入正题

先来几张好玩的图片

首先进入python交互界面,导入我自己写的模块,然后发一个测试消

息,"Hello,小伙伴们好!",然后看看企业号能否收到相应的消息。

当我敲下回车键的时候,返回了Succesfully,我马上拿起手机一看,我去,不得了,果然收到了(不过这是第一次收到信息的时候的心情了,现在却淡然无存)。

那么问题来了,既然可以这么玩,那岂不可以把所有能通知的信息都可以通过python调用接口发送信息了?那当然了,可以把自己感兴趣的用爬虫爬下来,然后发给自己,也可以用于报警等信息,还可以。。。。。。就看你自己怎么玩吧

言归正常,其实实现起来也很简单。从以上表格可以看出,本文使用的python版本为3.6.0,python2无法正常运行,因为python3.3以后标准库只有urllib,urllib2已经不能再用,只能用urllib.request来代替。所以小编写的源码头部引入的模块如下图:

上图第一行嘛,就是python解释器的绝对路径,也就是你python的安装路径,自行修改即可。第二行申明编码为utf-8。对编码想要深入了解,可以自行Google了解。接下来就是导入python标准库的一些模块。对于urllib这个模块,我更推荐第三方requests库来写这个功能,因为它比urllib更方便高效。linux系统是默认没有安装的,需要通过以下命令安装:

pip install requests

感兴趣的可以用requests去写,当然万变不离其宗,原理思路还是一样的。

这里要介绍一下pymongo这个模块,在介绍此模块之前,我们还是要谈mongodb,因为这个模块就是用来操作mongodb的。下面这段是摘抄网上的资源:

MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。

MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。

很多读者可能不理解,这么一个小功能干嘛还用mongodb,小编主要用来存放一些比较私密一类的信息,比如说调用凭证的秘钥这类信息,说白了就是为了安全,这类秘钥明文的放在代码里当然不安全了,后面会把全部代码贴出来,明白人一看就知道了,大神们就可以帮忙指点改进了

想要了解python操作mongodb的一些方法,可以看看这篇文章,简洁易懂:

https://www.jianshu.com/p/9da448e54696

既然要写成模块写成一个库,那么就要面向对象了,虽然此前从未有过对象

我们先来定义一个类,这个名字随便你取了,为了标识功能我取的是WeiChat。

大概解释一下:

第16~19行嘛,是一个构造函数,当类被实例化时自动执行。然后就是初始化实例属性。

第24~30行,我是另外定义了一个方法,这个class中的函数主要是用来获取token的,想要调用api,这个东东必不可少。

这个函数主要是用来规范发送信息的格式,json格式,没办法,人家腾讯这么规定了,不过,还可以定义发送图片,图文等等类型的消息啦,我这里只需要发送文本消息,所以是"text"。其它想进一步了解的可以看开发者文档。

这个函数定义了连接mongodb,我的所有重要信息都在里面了,所以源码放出来我也不用当心了

这个函数主要是读取mongodb里面的数据,以便我发送所需要的信息。

这个函数比较关键,前面能收到消息,主要靠这家伙,哈哈。这个类主要的一些功能函数就介绍完了,下面贴上完整代码:

其实这些代码还可以优化和改进,不是最近python3.7已经推出嘛,可以用3.7去实现这个功能——据说性能和速度比2.7快1.19倍。但是其它python3版本都要比2.7慢。

我个人主要是用来发送工作上和生活上有关的东西的,比如说值班信息,和运维报警,还有就是爬取网络上感兴趣的东东定时发送给自己,给自己充个电

效果图如下:

既然你写好了一个功能,而且很频繁的去调用,那么可将写好的模块安装到系统库里,随时随地的都可以调用,方法当然也很简单啦,网上Google一把教程很多,在此就不赘述。下篇我们讨论一下有关celery相关的东西

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180712G0NCBP00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券