getUserProfile(e) {
wx.getSetting({
success(res) {
if (res.authSetting['scope.userInfo']) {
// 已经授权,可以直接调用 getUserInfo 获取头像昵称
wx.getUserProfile({
desc: '用于获取用户个人信息', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写
success: function (detail) {
wx.login({
success: ress => {
var code = ress.code; //登录凭证
console.log(">>>>>>>>>>code:", code)
console.log("encryptedData:", detail.encryptedData)
console.log("iv:", detail.iv)
wx.request({
url: api.getUnionId, //自己的服务接口地址
method: 'post',
header: {
'content-type': 'application/x-www-form-urlencoded'
},
data: {
encryptedData: detail.encryptedData,
iv: detail.iv,
code: code,
},
success: (res) => {
console.log("res:", res.data)
if (res.data.code == 'C00000') {
util.setToken(res.data.msg);
util.setStorageSync("userInfo", res.data.obj);
wx.redirectTo({
url: '/pages/breakpage/breakpage',
})
}
},
fail: function () {
console.log('系统错误')
}
})
}
});
}
});
}
}
})
},
请问wx.getSetting不能用,要用什么替代?原先使用getuserinfo是可以正常授权的,直接换成getUserProfile点击没反应啊,去掉wx.getSetting后会提示unionid为空,我是新手,请大佬回答下怎么改呢?
首先: wx.getUserProfile 需要用户在页面上的点击事件进行触发,并且不能嵌套在任何 api 的回调中,不然会报 getUserProfile:fail can only be invoked by user TAP gesture 错误信息。
其次:开发版 & 体验版 scope.userInfo 调整将于 4月13日 对齐,统一返回 true,因此将无法通过 wx.getSetting 获取用户的授权状态,毕竟 wx.getUserProfile 类似于一次性的授权,每次调用均需 用户同意授权。
最后可查看 文章链接 :开发者通过 wx.login 获取到用户登录凭证 (code),调用微信登录接口(auth.code2Session)将直接返回 openId、unionId(请先确认已在开放平台绑定该小程序,绑定流程:登录 微信开放平台 — 管理中心 — 小程序 — 绑定小程序)
不需要用wx.getSetting,反正我从来没用过
https://blog.csdn.net/t_332741160/article/details/115801446