云函数中axios访问code2session,在本地云函数调试的Appdata中可以看到网络返回的session_key,但是无法控制台打印,也不能写入数据库
// 云函数入口文件
const cloud = require('wx-server-sdk')
const axios = require('axios')
cloud.init({ env: "指定云环境"}) // 使用当前云环境
const db = cloud.database()
// 云函数入口函数
exports.main = async (event, context) => {
const wxContext = cloud.getWXContext()
console.log(wxContext);
axios({
method: 'get',
url: 'https://api.weixin.qq.com/sns/jscode2session',
params: {
appid: wxContext.APPID,
secret: '自己的secret',
js_code: event.code, //此处采用login获取的code
grant_type: "authorization_code",
}
})
.then((response)=> {
console.log(response)
const userInfo = db.collection("usersBasicInfo").add({
data:{
openid: response["openid"],
session_key: response["session_key"],
unionid: response["unionid"]
}
})
return response //返回值为undefined
});
}
//callFunction后打印响应值{errMsg: "cloud.callFunction:ok", result: null, requestID: "一串字符"}
在云函数中,要用async/await。不要用.then。
db.collection().add().then()里面return试试