今天学习云开发如何发请求和进行数据安全监测
问题:用got请求token可以,但进行安全监测时却报错
在网上找了许多篇文章,也在群里跟别人交流过,综合了一下,找到了解决办法------用request-promise代替got
我这是获取taken时用got,进行安全检测则使用request-promise,没错同时用了两包来完成这个功能(毕竟是学习过程中,这可和微信不支持模板消息不一样,因为已经获取不了formId,实在是学不了了😂)
下面展示代码:
小程序端的js
Page({ msgCheck:function(event){ wx.cloud.callFunction({ name:'msg', data:{ text:'完2347全dfji试3726测asad感3847知qwez到' // text:'你好呀' } }).then(res => { console.log(res) console.log(res.result) // console.log(JSON.parse(res.result)) }) } })
云端的js代码
// 云函数入口文件 const cloud = require('wx-server-sdk') const got = require('got') const rp = require('request-promise') let appid = '你的appid; let screct = '你的screct'; let msgCheckUrl = 'https://api.weixin.qq.com/wxa/msg_sec_check?access_token=' let tokenUrl = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='+appid+'&secret='+screct cloud.init() // 云函数入口函数 exports.main = async (event, context) => { let tokenResponse = await got(tokenUrl) // console.log(tokenResponse.body) let token = JSON.parse(tokenResponse.body).access_token; console.log(token) var options = { method: 'POST', url: "https://api.weixin.qq.com/wxa/msg_sec_check?access_token="+token, body: { content: event.text }, json: true // Automatically stringifies the body to JSON }; //下面是got报错的代码😂 // a = rp(options) // .then(function (parsedBody) { // // console.log(parsedBody) // // return parsedBody // }) // .catch(function (err) { // // POST failed... // }); return await rp(options) // let checkResponse = await got(msgCheckUrl + token,{ // method:'POST', // headers:{ // 'Content-Type':'application/json' // }, // body:JSON.stringify({ // content:event.text // }) // }); // return options.body // return token; }
总结:去研究为什么报错,不如换一种方法去解决,前者似乎更浪费时间
来源:https://www.cnblogs.com/ygjzs/p/12521171.html