微信企业号开发--通知系统(第一篇)

如果只是需要一个简易的通知系统,那么可以使用 Server酱 /* 配置方便 也比较快捷 */ 代替这些,下面的内容都是自己重复造轮子学习的过程 。

  • 开发起因: 在开发生活中很多需要用到通知到个人的事情,例如某一api接口出现问题、某某大佬更新了博客前去膜拜等等。那么在这些情况下身为一个python 的初学者(学生),就想着怎么去利用手头的 微信/QQ 来给自己实时的通知功能。//重复造轮子2333
  • 开发最终实现目的: 能够在web服务宕机、每日推送服务器运行信息、监控某商品价格等想要及时通知到个人的时候最快速度通知到个人
  • 开发利用到的语言及模块:python3.x + flask
  • 开发利用的平台:微信,企业微信

首先我们需要注册企业微信(非企业公众号)

大家可以直接通过 https://work.weixin.qq.com/ 进行注册(具体过程等有时间)

在创建好企业微信后我们需要创建一个自建应用

应用与小程序 - 应用 - 自建 - 创建应用

添加好后点击应用进入 获取你的agentid 以及secret值

打开 我的企业 --企业信息 记录下企业ID

下面的是很简单的一个给自己发送信息的一个例子

// 下面的代码写于18年09月 初学python时候一点一点写的,有些重复的代码可以优化(包括命名),原本想重新写下,想了下还是把最初的代码放上来。

// 初学时候写的代码,写的不太好,大佬们轻点吐槽。。

#encoding=utf-8
import json
import time
import requestsclass WeiXinsend():def __init__(self):self.expireTime=7200                #  token 过期时间self.corpid='***************'       #  企业IDself.agentid = 1000002              # "企业应用" 第一行 agentidself.corpsecret = '*********'       # "企业应用" 第二行 secretself.touser = "********"            # "通讯录"->"成员详情" 的帐号 (就是你自己的账号名)self.toparty = "1"                  # "通讯录" 左侧部门最右边的三个点里的IDself.db_save = './token.json'       #  保存token值的文件self.GETaccess_token()def GETaccess_token(self):try:with open(self.db_save, 'r') as load_f:load_dict = json.load(load_f)if load_dict['req_time'] >= (int(time.time())):print("[+] token在有效期内")self.access_token = load_dict['access_token']self.access_token_time = load_dict['req_time']return (load_dict['access_token'])  # 判断tocken没有过期else:print("[-] token已过期")except:a = 1  # 没有token文件或者token过期tokenurl = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=" + self.corpid + "&corpsecret=" + self.corpsecretbacktokenmsg = requests.get(tokenurl).json()# print(backtokenmsg)if backtokenmsg['errcode'] == 0:self.access_token = backtokenmsg['access_token']self.access_token_time = int(time.time()) + self.expireTime - 30  # token 时间+过期时间-30秒保证不会卡点savetoken = {'access_token': self.access_token,'req_time': self.access_token_time}with open(self.db_save, "w") as f:json.dump(savetoken, f)print("[+] token更新成功")return self.access_tokendef Checkaccess_token(self, Getnew=None):'''用来检测access_token 是否过期 如果没有过期则直接返回access_tocken的值:Getnew:   如果不为空则重新获取一次token:return:'''if Getnew == None:if self.access_token_time >= (int(time.time())):# 判断是否在有效期内return self.access_tokentokenurl = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=" + self.corpid + "&corpsecret=" + self.corpsecretbacktokenmsg = requests.get(tokenurl).json()if backtokenmsg['errcode'] == 0:self.access_token = backtokenmsg['access_token']self.access_token_time = int(time.time()) + self.expireTime - 30  savetoken = {'access_token': self.access_token,'req_time': self.access_token_time}with open(self.db_save, "w") as f:json.dump(savetoken, f)print("[+] token更新成功")return self.access_tokendef API_sendMsg(self, content):# 应用类send 文本信息msg = {"touser": self.touser, "toparty": self.toparty, "msgtype": "text", "agentid": self.agentid,"text": {"content": content}}msg = (bytes(json.dumps(msg), 'utf-8'))url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + self.Checkaccess_token()backmsg = requests.post(url, msg).json()if backmsg['errcode'] == 0:print("[+] 信息发送成功")return 0elif backmsg['errcode'] == 42001:url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + self.Checkaccess_token(Getnew=1)backmsg = requests.post(url, msg).json()if backmsg['errcode'] == 0:print("[+] 信息发送成功")return 0else:print("[-] 信息发送失败")print(backmsg)return 101def API_sendCardMsg(self, title="1", content="Nothings", url="https://www.sgdream.cn", btntxt="查看"):now_time = ((time.strftime('%Y-%m-%d-%H-%M', time.localtime(time.time()))).split("-"))now_time = """<div class=\"gray\">{now_time0}年{now_time1}月{now_time2}日 {now_time3}:{now_time4}</div><div></div>""".format(now_time0=now_time[0], now_time1=now_time[1], now_time2=now_time[2], now_time3=now_time[3],now_time4=now_time[4])msg = {"touser": self.touser,"toparty": self.toparty,"msgtype": "textcard","agentid": self.agentid,"textcard": {"title": title,"description": now_time + "<div class=\"normal\">" + content + "</div>","url": url,"btntxt": "更多"}}msg = (bytes(json.dumps(msg), 'utf-8'))url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + self.Checkaccess_token()backmsg = requests.post(url, msg).json()if backmsg['errcode'] == 0:print("[+] 信息发送成功")return 0elif backmsg['errcode'] == 42001:url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + self.Checkaccess_token(Getnew=1)backmsg = requests.post(url, msg).json()if backmsg['errcode'] == 0:print("[+] 信息发送成功")return 0else:print("[-] 信息发送失败")print(backmsg)return 101if __name__ == '__main__':WeiXinsend().API_sendCardMsg("测试", "test")

在自己的 微信上接受到的信息效果:


题外话 : 膜 Angel_Kitty 大佬,虽然因为一些个人原因(水平比较低)不能做到博客 高产量高质量。但是也会努力加油的哈

转载于:https://www.cnblogs.com/sgdream/p/10263075.html

微信企业号开发(第一篇)相关推荐

  1. 微信企业号开发[二]——获取用户信息

    注:文中绿色部分为摘自微信官方文档 在<微信企业号开发[一]--创建应用>介绍了如何创建应用,但是当用户点击应用跳转到我们设定的URL时,其实并没有带上用户的任何信息,为了获取用户信息,我 ...

  2. 微信企业号开发:启用回调模式

    微信企业号开发怎样启用回调模式?就是简单的登陆PC版微信,点击应用中心,选择须要应用,再点击回调模式启用? 似乎不是这么简单.! 能够看到核心的仅仅有三个URL.Token,EncodingAESKe ...

  3. Jeewx-Enterprise_1.1版本发布,开源微信企业号开发平台

    JEEWX企业号简介 JEEWX微信企业号开发平台是一款开源.免费.高效.敏捷的微信企业号开发平台,采用JAVA语言基于Jeecg快速开发框架实现,实现了微信企业号管理平台的基础功能,便于用户二次开发 ...

  4. 语音技术(百度语音)开发 - 第一篇

    语音技术(百度语音)开发 - 第一篇 AI接入指南 短语音识别标准版.查看文档 短语音识别API文档 .调用流程.speech 参数填写.参数说明.等等 官方demo地址 创建应用.百度云平台 网上案 ...

  5. 微信企业号开发实例源码

    从微信服务号到微信企业号开发也有段时间了,微信服务号主要是参考柳峰的博客学习的,http://blog.csdn.net/lyq8479/article/category/1366622/2. 微信企 ...

  6. 微信企业号开发(2)--建立连接(主动)

    [本文所描述的内容具有一定的时效性,请以实际开发所处环境为准] 在微信企业号开发(1)--基础入门中,我们已经学习了,我们的程序结构应该如何设计.接下来,我们会按照微信企业号开发者接口文档的顺序,逐一 ...

  7. 微信企业号开发之 企业号人员身份认证与开发

    前言 这里完全可以链接一个登录页面,让用户输入用户名密码进行登录的...2333 但是,这样所就完全失去了微信企业号的意义,本来进入微信企业号的时候,就已经对人员身份进行认证了,你这里再让别人登录,不 ...

  8. 微信 考勤 php,微信企业号开发之微信考勤Cookies的使用_javascript技巧

    在上篇文章给大家介绍了微信企业号开发之微信考勤百度地图定位,接下来通过本文学习微信企业号开发之微信考勤Cookies的使用,具体内容如下. 使用微信考勤,每次使用微信企业号开发:微信用户信息和web网 ...

  9. 微信企业号开发:微信考勤

        使用微信考勤,有很多企业号应用都有,但如何实现呢?   核心有有两个,1其实就是获取用户位置,其实这个可以使用百度地图的API,当然其他的也可以,微信自己的地图实在是太差了,没有考虑.当然地理 ...

  10. 微信企业号开发:微信考勤百度地图定位,错误修正二

    在之前的博客中微信企业号开发:微信考勤百度地图定位,错误修正介绍了一种修正百度地图错误的方法,就是使用高德地图修正.但经过近一年.近两千人的使用发现,在百度地图出现定位错误时,通过HTML5获取的经纬 ...

最新文章

  1. bzoj 2406 矩阵——有源汇上下界可行流
  2. 问题集锦(46-47)
  3. 博图如何读取mysql数据_博途使用小结:从SQL中读取数据并给变量赋值
  4. python jit_Pyston是一个基于JIT的Python开源实现
  5. 基于暗通道优先算法的去雾应用(Matlab/C++)
  6. Java8函数式编程(1)--Principle
  7. 多线程与高并发(一):单机高并发应该掌握的线程基础:线程状态,异常与锁等
  8. mysql 服务账号_MySql 账号管理
  9. Android Espresso
  10. matlab 定步长积分,数值积分:基于牛顿-柯茨公式的定步长和自适应积分方法 [MATLAB]...
  11. 3月第2周易盾业务风控关注 | 新版个人信息安全规范正式发布
  12. 微信登录服务器提示异地登录异常,最近QQ微信被异地登录怎么回事 收到微信异地登录的信息怎么办...
  13. 2017计算机二级ms office高级应用成绩查询
  14. SHGetFileInfo 报错 异常 问题
  15. 搭建微信小程序转码机器人教程
  16. 2022-05-14 Unity核心7——2D动画
  17. C1-见习工程师能力认证-02
  18. jml java msn_使用jml 取得MSN好友列表
  19. joomla3.4.1学习笔记(一)——后台显示自定义模板
  20. Echarts人口金字塔

热门文章

  1. WordPress 前端投稿/编辑发表文章插件 DJD Site Post(支持游客和已注册用户)汉化版 免费下载...
  2. 路由器更换wan口及vlan配置
  3. Vmware安装CensOS6.4
  4. 所有失去的都会以另一种方式归来
  5. 【Trailhead题目解析】Prepare your salesforce org for users - 5Create Chatter Groups
  6. 爱情 何为爱情(搜集)
  7. 上海证券交易所云平台移动行情服务测试项目
  8. supervisor web页面访问
  9. 编码,隐匿在计算机软硬件背后的语言读书笔记(1)
  10. Edit plus | ecli pse配色方案