今天学习云开发如何发请求和进行数据安全监测
问题:用got请求token可以,但进行安全监测时却报错
在网上找了许多篇文章,也在群里跟别人交流过,综合了一下,找到了解决办法------用request-promise代替got
我这是获取taken时用got,进行安全检测则使用request-promise,没错同时用了两包来完成这个功能(毕竟是学习过程中,这可和微信不支持模板消息不一样,因为已经获取不了formId,实在是学不了了)
request-promise使用参考
微信内容安全检测文档
下面展示代码:
小程序端的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;
}
总结:去研究为什么报错,不如换一种方法去解决,前者似乎更浪费时间