请教各位高手,
本人目前出现了基本的问题一直转不出来,云开发调用云函数getopenid,获取openid, 一直报错。之前没问题的,好像是当初微信调整getuserProfile之后和配额调整后出现的这个问题,我的判断是环境初始化出了问题,所以我在微信官方配额调整后又另外创建了另一个环境,并予以更新,但还是报同样的错。有人知道还可能哪里有问题吗?看似小程序开发幼儿园级别的问题就是没有解决。
配置环境,在app.js, 云函数的第一个函数中,index.js 第一次使用的时候使用同一环境变量难道还有漏掉的地方?
index.js中,
getuseropenid: function (e) {
wx.cloud.callFunction({
name: "getopenid",
success(res) {
console.log("---获取openid成功----",res)
// 点击登录的时候,首先把用户的openid获取并保存到缓存中
wx.setStorageSync('openid', res.result.openid)
},
fail(err) {
console.log(err)
}
})
},
云函数端:
const cloud = require('wx-server-sdk')
wx.cloud.init({
env:"prod-qc-2gu8gs116bc78da2",
traceUser:true
})
// 云函数入口函数
exports.main = async (event, context) => {
const wxContext = cloud.getWXContext()
return {
event,
openid: wxContext.OPENID,
appid: wxContext.APPID,
unionid: wxContext.UNIONID,
}
}
app.js端:
App({
onLaunch: function () {
wx.cloud.init({
env:"prod-qc-2gu8gs116bc78da2",
traceUser:true
})
// 展示本地存储能力
var logs = wx.getStorageSync('logs') || []
logs.unshift(Date.now())
wx.setStorageSync('logs', logs)
// 登录
wx.login({
success: res => {
// 发送 res.code 到后台换取 openId, sessionKey, unionId
}
})
// 获取用户信息
wx.getSetting({
success: res => {
if (res.authSetting['scope.userInfo']) {
// 已经授权,可以直接调用 getUserInfo 获取头像昵称,不会弹框
wx.getUserInfo({
success: res => {
// 可以将 res 发送给后台解码出 unionId
this.globalData.userInfo = res.userInfo
// 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回
// 所以此处加入 callback 以防止这种情况
if (this.userInfoReadyCallback) {
this.userInfoReadyCallback(res)
}
}
})
}
}
})
},
globalData: {
userInfo: null
}
})