微信小程序内容校验之node实现
项目介绍:小程序是关于教师直播,所以需要对教师上传的音频和图片进行校验
方法:调用微信API(详情参考here)上传音频or图片,微信异步返回校验结果
流程:
1、获取小程序全局唯一后台接口调用凭据(access_token
)调用绝大多数后台接口时都需使用 access_token,开发者需要进行妥善保存。
1 const request = require('request'); 2 3 // 获取小程序全局唯一后台接口调用凭据(access_token) 4 // 参数:appid-它其实就是小程序的「身份证号码」 secret-AppSecret(小程序密钥) 可在Web登录小程序账号 在设置---开发设置中 获取 5 var getAccessToken = function(appid, secret){ 6 return new Promise(function(resolve, reject){ 7 let wxApi = `https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=${appid}&secret=${secret}` 8 request(wxApi, function (error, response, data) { 9 var wxApiData = JSON.parse(data) 10 if (wxApiData.access_token) { 11 resolve(wxApiData.access_token) 12 } else { 13 reject(wxApiData.errcode) 14 } 15 }); 16 }) 17 }
2、调用检验API
1 // 参数 access_token-上面得到 media_url-文件地址,一定要能打开下载否则微信不能识别 media_type-1:音频;2:图片 2 var wxCheck = function(access_token, media_url, media_type){ 3 return new Promise(function(resolve, reject){ 4 let wxApi = `https://api.weixin.qq.com/wxa/media_check_async?access_token=${access_token}` 5 let reqData = { 6 media_url: media_url, 7 media_type: parseInt(media_type) 8 } 9 request({ 10 url: wxApi, 11 method: "POST", 12 json: true, 13 headers: { 14 "content-type": "application/json", 15 }, 16 body: reqData 17 }, function (error, response, wxApiData) { 18 console.log(wxApiData, typeof(wxApiData), "wxApiData") 19 if (wxApiData.errcode == 0) { // 检测请求已接受 20 resolve(wxApiData.trace_id) 21 } else { 22 reject(wxApiData.errmsg) 23 } 24 }); 25 }) 26 }
3、微信异步返回检测结果(注意:下面代码必须要配置微信的推送消息,微信方可返回结果,详情参考here)
开发者实现HTTP/HTTPS接口供微信返回结果,再根据自己的业务逻辑实现代码。