python实现由通知接口发送企业微信通知

问题背景

项目中需要通过 python 实现由企业微信接口发送通知的功能,由于实现过程中发现了一些小问题,因此将各种情况总结一下。

要点说明

1. 请求接口鉴权并返回token值

import requests
import json
def request_token():
	param = "{\n\t\"appkey\":\"appkey\",\n\t\"appsecret\":\"appsecret\"\n}"
	headers_token = {
    	'Content-Type': "application/json",
 		'User-Agent': "agent_name"
	}
	response_token = requests.request("POST", url='url', headers=headers_token, data=param)
	dict = json.loads(response_token.text)
	token = dict['data']['token']

注意:

  1. appkeyappsecret 是请求 token 时的账号和密码。
  2. 代理 ‘User-Agent’ 可以根据实际情况选填,由于项目中如果不填则服务器拒绝访问,因此列入。
  3. ‘Content-Type’ 为 json格式,若更改为其他格式,则会返回 400。
  4. 由于项目中请求 token 返回的包含多个字段的字典类型结果,其中 data 包含 tokenexptoken 字段返回的是获取的token值,exp 字段返回该值的有效时间。不同封装库设置不同,返回的字段也不同,需根据实际情况判断。
  5. 在提取返回信息时需要用 json.loads 解码,可通过 dict 提取返回结果中的 token 值。

2.请求通知接口发送企业微信通知

import requests
def send_notice():
    headers_port = {
        'Authorization': token,
        'User-Agent': "agent_name"
    }
    dict_data = {
        'receiver': receiver,
        'message': message
    }
    response = requests.request("POST", url='url', headers=headers_port, data=dict_data)

注意:

  1. headers_port 里,‘Authorization’ 为获取的 token值, ‘User-Agent’ 为代理名。
  2. dict_data 则是按照封装库要求填写的通知主体。

3.通知内容中传入参数

import json
def msg():
	message['title'] = "邮件主题"
	message['content'] = """
    	>事件日期:<font color=\"warning\">%(DATE)s</font>
    	>事件内容:<font color=\"comment\">%(SCOPE)s</font>
		>
    	><font color=\"info\">**事件详情**</font>
		>%(CONTENT)s
	""" % dict(
    	DATE=date,
    	SCOPE=scope,
    	CONTENT=content
    	)
	message = json.dumps(message)

注意:

  1. ‘data’‘scope’‘content’ 均为外部传入的参数,可自行定义。
  2. message 主体支持 html类型,因此可以通过 html类型设置不同显示效果,突出通知重点。
  3. 封装库要求中明确 messge 内容为 json类型,因此最后需用 json.dumps 编码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值