代码实现请见文末

前段时间利用py爬虫抓取一些网页信息,然后通过wxpy发送到微信群,以用作日常告警,感觉还是很方便。

但好景不长,我的小号微信被腾讯封了(很常见咯), 显示无法登录网页版微信,至今已经有半个多月了。

怎么办,已经体验过微信告警的方便后,无法回归原始人工查看了。思来想去,决定探(bai)索(du)Python调用微信企业号试试看;

一、申请企业微信

具体见企业微信官网:https://work.weixin.qq.com/wework_admin/register_wx?from=myhome_mp_home

反正比较麻烦,我是怎么申请的?我当了一次伸手党,前期有同事申请过微信公众号,后来直接升级为企业微信。经过深层次的沟通,同事给我加了个管理员权限,哈哈!

开发之前还是要认真研究一下企业微信的API文档

二、创建应用

1、管理员进入企业微信“管理后台” — “企业应用”创建应用

2、设置应用logo、名称、描述、可见范围等。

开发阶段“应用可见范围”可先选择小范围可见,待开发完成后再开放给企业员工。

三、获取access_token

开发者可以使用access_token来访问企业微信的接口。需要注意的是,所有的接口需使用Https协议、Json数据格式、UTF8编码。

请求方式:GET(HTTPS
请求URL:https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=id&corpsecret=secrect

权限说明:

每个应用有独立的secret,所以每个应用的access_token应该分开来获取

术语介绍

  • corpid:每个企业都拥有唯一的corpid,获取此信息可在管理后台“我的企业”-“企业信息”下查看(需要有管理员权限)
  • secret:secret是企业应用里面用于保障数据安全的“钥匙”,每一个应用都有一个独立的访问密钥,为了保证数据的安全,secret务必不能泄漏。通讯录接口的密钥在“管理工具”-“通讯录同步”里面查看,企业自定义的应用的密钥可以在企业应用的详情里面手动生成
  • access_token:access_token是企业后台去企业微信的后台获取信息时的重要票据,由corpid和secret产生。所有接口在通信时都需要携带此信息用于验证接口的访问权限

corpid:

secret:

四、发送消息

应用支持推送文本、图片、视频、文件、图文等类型。

请求方式:POST(HTTPS
请求地址: https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=ACCESS_TOKEN

五、代码实现

import urllib.request
import json #--------------------------------
# 获取企业微信token
#-------------------------------- def get_token(url, corpid, corpsecret):
token_url = '%s/cgi-bin/gettoken?corpid=%s&corpsecret=%s' % (url, corpid, corpsecret)
token = json.loads(urllib.request.urlopen(token_url).read().decode())['access_token']
return token #--------------------------------
# 构建告警信息json
#--------------------------------
def messages(msg):
values = {
"touser": '@all',
"msgtype": 'text',
"agentid": 1000002, #偷懒没有使用变量了,注意修改为对应应用的agentid
"text": {'content': msg},
"safe": 0
}
msges=(bytes(json.dumps(values), 'utf-8'))
return msges #--------------------------------
# 发送告警信息
#--------------------------------
def send_message(url,token, data):
send_url = '%s/cgi-bin/message/send?access_token=%s' % (url,token)
respone=urllib.request.urlopen(urllib.request.Request(url=send_url, data=data)).read()
x = json.loads(respone.decode())['errcode']
# print(x)
if x == 0:
print ('Succesfully')
else:
print ('Failed') ##############函数结束######################## corpid = 'wx***********************'
corpsecret = 'Iwy******************************'
url = 'https://qyapi.weixin.qq.com'
msg='test,Python调用企业微信测试' #函数调用
test_token=get_token(url, corpid, corpsecret)
msg_data= messages(msg)
send_message(url,test_token, msg_data)

Python3调用企业微信用于告警的更多相关文章

  1. zabbix使用企业微信发送告警信息

    用qq邮箱发送告警信息一点都不方便,看到网上说也可以使用微信发送告警信息,所以就试了一下. 首先先试着在虚拟主机上给微信发送信息. 我们需要注册企业微信,注册时有一个地方需要注意,就是注册时选择组织, ...

  2. prometheus 通过企业微信接收告警

    准备工作 step 1: 访问网站 注册企业微信账号(不需要企业认证). step 2: 访问apps 创建第三方应用,点击创建应用按钮 -> 填写应用信息: prometheus 配置: # ...

  3. 调用企业微信API拨打紧急通知电话

    # 前提条件:企业信息:行业类型必须属于"医疗"大类,客服反馈说目前不支持其他行业# 准备工作:https://work.weixin.qq.com/api/doc/90000/9 ...

  4. Python3 使用企业微信 API 发送消息

    #coding=utf- import requests import json Secret = "TUbfeW8nFQakwOS4czm13SCnxSUPOqY2K0XHtM8XLT34 ...

  5. 使用Python发送企业微信消息

    准备工作: 到企业微信官网,注册一个企业:登录企业微信后台,创建一个“自建”应用, 获取企业ID.agentid.secret这3个必要的参数:在企业微信的通讯录中,创建多个测试账号:在手机端安装“企 ...

  6. ASP.NET实现企业微信接入应用实现身份认证

    目录 #需求场景 #参考 #具体步骤 1.获取access_token 2.构造网页授权链接 3.获取访问用户身份 #.Net具体代码 1.Web首页服务端代码 2.帮助类代码 #需求场景 一个.ne ...

  7. Java发送企业微信应用消息

    1.发送消息与被动回复消息 (1)流程不同:发送消息是第三方服务器主动通知微信服务器向用户发消息.而被动回复消息是 用户发送消息之后,微信服务器将消息传递给 第三方服务器,第三方服务器接收到消息后,再 ...

  8. java如何对接企业微信

    前言 最近实现社群对接企业微信,对接的过程遇到一些点,在此记录. 企业微信介绍 企业微信具有和微信一样的体验,用于企业内部成员和外部客户的管理,可以由此构建出社群生态. 企业微信提供了丰富的api进行 ...

  9. Java企业微信开发_05_消息推送之发送消息(主动)

    一.本节要点 1.发送消息与被动回复消息 (1)流程不同:发送消息是第三方服务器主动通知微信服务器向用户发消息.而被动回复消息是 用户发送消息之后,微信服务器将消息传递给 第三方服务器,第三方服务器接 ...

随机推荐

  1. 网关(Gatesvr) 设计(1)

    Gate解决的问题: 1.用户在服务端的实例可以在不同的进程中,也可以移动到同一个进程中.2.用户只需要与服务端建立有限条连接,即可以访问到任意服务进程.这个连接的数量不会随服务进程的数量增长而线性增 ...

  2. Centos6.5中Nginx部署基于IP的虚拟…

    Centos6.5 中Nginx 部署基于IP 的虚拟主机 王尚2014.11.18 一.介绍虚拟主机 虚拟主机是使用特殊的软硬件技术,把一台真实的物理电脑主机 分割成多个逻辑存储单元,每个单元都没有 ...

  3. 25. leetcode 217. Contains Duplicate

    217. Contains Duplicate Given an array of integers, find if the array contains any duplicates. Your ...

  4. Zabbix监控nginx性能

    编辑nginx的配置文件nging #配置ngx_status location /nginx_status{ stub_status on; access_log off; } #重启nginx # ...

  5. hdu--1711--kmp应用在整形数组--Number Sequence

    /* Name: hdu--1711--Number Sequence Author: shen_渊 Date: 16/04/17 19:58 Description: 第一次知道,KMP能用在整形数 ...

  6. 【python密码学编程】7.暴力破解凯撒加密法

    # _*_ coding:utf-8 _*_ #Caeser Ciper import pyperclip messgae = 'GUVF VF ZL FRPERG ZRFFTNR.' nums = ...

  7. 关于MFC实时的视频处理

    最近老师,让我做一下关于视频处理方面的一个项目,在实时处理这里实在是卡住了太长时间,因为不知道如何使用多线程来进行实时检测,终于有点眉目,来写个笔记记录一下. 首先需要介绍一下关于项目的背景,做一个人 ...

  8. 版本管理工具Git(2)git的安装及使用

    下载安装git 官方下载地址:https://git-scm.com/download/win 这里以windows为例,选择正确的版本: 验证是否安装成功,右键菜单中会出现如下菜单: Git工作流程 ...

  9. python学习之列表和字典

    列表 基本操作>>>len([1,3,4])3 >>>[1,2,3]+[4,5,6]    +号两边必须是相同类型[1,2,3,4,5,6] >>> ...

  10. python学习之字符串(下)

    ----------------------------------------------实际应用中的其他常见的字符串方法 >>>line = "the knights ...