收藏
回答

在云函数中通过axios访问code2session时拿不到session_key?

云函数中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: "一串字符"}
回答关注问题邀请回答
收藏

2 个回答

  • 跨商通
    跨商通
    01-03

    在云函数中,要用async/await。不要用.then。

    01-03
    有用 1
    回复
  • xplee
    xplee
    发表于小程序端
    01-03

    db.collection().add().then()里面return试试

    01-03
    有用
    回复
登录 后发表内容