微信小程序 msg_sec_check 正确调用方式

本文介绍了微信小程序msg_sec_check接口正确调用的方法,包括设置URL请求参数、请求头及Content-Type,并强调access_token的位置和避免额外配置。同时,提到了因请求头设置错误(如gzip)和Content-Type不正确导致的常见报错问题。

服务端使用微信小程序的内容安全检查等接口时,尽管按文档 https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/sec-check/security.msgSecCheck.html 的要求传了参数,但是还是会出错,而用 postman 等工具却正常,以下分享调试经验。

1. 正确调用方式

在服务端发起调用时,网址为:

https://api.weixin.qq.com/wxa/msg_sec_check?access_token={你的token}

设置请求头为:

  • Method: POST
  • Content-Type: application/json
  • Body: content 的 json 格式字符串

其中注意点有:

  1. access_token 需要放在url 的请求参数位置
  2. 请求头多了其他配置,例如 gzip: true,都有可能产生错误
  3. 需要设置 Content-Type 为 json 格式,否则自己手动将对象 { content: “检查词” } 转成合法的 json 格式

下面用 egg.js 框架的调用方式举例一下,其他框架也大同小异:

const url = 'https://api.weixin.qq.com/wxa/msg_sec_check?access_token={你的token}';
const res = await this.ctx.curl(url, {
  method: 'POST',
  contentType: 'json',
  data: { content: "检查词" },
  dataType: 'json',    // 例如可以设置响应格式为json
                       // 其他无影响的请求头参数可以酌情增加,但例如 gzip 加入就会报错
})

2. 一些常见报错原因

  • 请求头设置出错,多了不必要的配置(这里是设置了 gzip 后报错)
Error: incorrect header check, POST https://api.weixin.qq.com/wxa/msg_sec_check?access_token=*** 200 (connected: true, keepalive socket: true, socketHandledRequests: 1, socketHandledResponses: 1)
headers: {"connection":"close","content-encoding":"deflate","content-type":"application/json; charset=UTF-8","content-length":"26"}
  • content 传递时没有指定 ContentType 为 application/json,导致传递传参错误
data format error hint: [odGiRa03874870]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值