API开发_企业微信_推送消息_params与body区别

背景

有个项目需要用企业微信API推送应用消息,根据腾讯提供的文档研究一下

过程

  1. 获取TOKEN
  2. 推送文本信息

一些问题

刚开始推送文本信息的时候一直报错

‘errcode’: 40008, ‘errmsg’: ‘invalid message type’

而用POSTMAN又顺利推送
经过筛查,发现是post方法语句出现问题

data = {
    "msgtype": "text",
    "agentid": "1000003",
    "touser": "@all",
    "text": {
        "content": "123"
    },
}
r = requests.post(url=URL, params=data)

这里是直接复制了get方法的,所以其中的params忘记修改了。
将其修改为

r = requests.post(url=URL, data=data)

提示 Warning: wrong json format

原来是要json格式的,最终改为

r = requests.post(url=URL, json=data)

注意

params参数必须为字典类型
data参数必须为字符串类型
json参数必须为字典类型


注意请求中的params与data(body)的区别,其实就是注意post跟get的区别
get请求

请求参数会放在url里,用?分割参数,多个参数用&链接
参数会被放在url里,所以get请求时参数需在params

post请求

参数不会放在url里,所以post请求时参数需在body

最终代码

URL = 'https://qyapi.weixin.qq.com/cgi-bin/message/send'
param={
    "access_token":TOKEN
}
data = {
    "msgtype": "text",
    "agentid": "1000003",
    "touser": "@all",
    "text": {
        "content": "123"
    },
}
print(json.dumps(data))
r = requests.post(url=URL, params=param,json=data)

在平常的使用中,我们一般将TOKEN作为参数来传递,防止与body中参数混淆。但未知是否会带来安全问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值