获取微信用户信息失败,请检查网络状态
来源:6-1 个人中心-用户信息获取+展示
fengyunzhu
2018-05-19
6-1节
没有弹出微信授权的那个弹框,报了个错
之前的weapp/demo都是正常的
6回答
-
fengyunzhu
提问者
2018-05-21
更新更新更新
报错原因并不是qcloud问题,请检查本地配置,以及是否npm run dev 开启服务器服务
不弹出授权弹窗的问题,是由于微信更新规则,的确需要使用button标签,具体见下方代码(come from a classmate)
<template> <div class="container"> <div class="userinfo" @click='login'> <img :src="userinfo.avatarUrl"> <p>{{userinfo.nickName}}</p> <button v-if='!userinfo.openId&&canIUse' open-type='getUserInfo' type='primary' @getuserinfo='login'>点击登录</button> <p v-if='!canIUse'>请升级微信版本</p> </div> <YearProgress /> <button v-if='userinfo.openId' type="primary" class="btn" @click='scanBook'>添加图书</button> </div> </template> <script> import qcloud from 'wafer2-client-sdk' import config from '@/config' import { showSuccess } from '@/util' import YearProgress from '@/components/YearProgress' export default { data() { return { userinfo: { avatarUrl: '../../../static/img/me.png' }, canIUse: wx.canIUse('button.open-type.getUserInfo') } }, methods: { scanBook() { wx.scanCode({ success: res => { console.log(res.result) } }) }, login(e) { console.log(e.mp.detail.userInfo) let user = wx.getStorageSync('userinfo') const self = this if(!user) { qcloud.setLoginUrl(config.loginUrl) qcloud.login({ success: userInfo => { qcloud.request({ url: config.userUrl, login: true, success: userRes => { console.log('登陆成功', userInfo) showSuccess('登录成功') wx.setStorageSync('userinfo',userInfo) self.userinfo = userRes.data.data }, fail: () => { console.log('登陆失败') } }) } }) } } }, components: { YearProgress }, onShow() { let userinfo = wx.getStorageSync('userinfo') if(userinfo) { this.userinfo = userinfo } } } </script> <style lang='scss' scoped> .container { padding: 0 30rpx; .userinfo { margin-top: 100rpx; margin-bottom: 50rpx; text-align: center; img { width: 150rpx; height: 150rpx; margin: 5rpx; border-radius: 50%; } button { width: 30vw; background-color: #fff; color: #000; font-size: 14px; } } } </style>
152018-05-28 -
fengyunzhu
提问者
2018-05-19
微信调整了获取用户信息接口
在获取用户信息时 需要使用button按钮进行获取
1.获取用户头像昵称,第一次需要使用 button 组件授权,如果已经用组件授权了,wx.getUserInfo 可直接返回用户数据,无需重复授权弹窗。
2. 如果没有用 button 组件授权,wx.getUserInfo 调用接口返回失败,提醒开发者需要先使用 button 组件授权。(很明显提示并不明确)3. 用户可在设置中,取消授权。取消授权后需重新用 button 组件拉起授权。
https://developers.weixin.qq.com/blogdetail?action=get_post_info&lang=zh_CN&token=384460955&docid=000aee01f98fc0cbd4b6ce43b56c01
10 -
慕勒8218806
2018-09-06
直接参考github上的wafer2-client-sdk
<template>
<div class="userinfo">
<button v-if="!hasUserInfo && canIUse" open-type="getUserInfo" lang="zh_CN" bindgetuserinfo="getUserInfo" @getuserinfo="login"> 点击登录 </button>
<block v-else>
<img class="userinfo-avatar" :src="userInfo.avatarUrl" alt="">
<text class="userinfo-nickname">{{userInfo.nickName}}</text>
</block>
</div>
</template>
<script>
import config from '../../config'
import qcloud from 'wafer2-client-sdk'
export default {
data: {
userInfo: {},
hasUserInfo: false,
canIUse: wx.canIUse('button.open-type.getUserInfo')
},
methods: {
getUserInfo (e) {
console.log('crazy getUserInfo', e)
this.userInfo = e.detail.userInfo
this.hasUserInfo = true
},
getWxLoginNew: function () {
console.log('crazy getWxLoginNew')
const session = qcloud.Session.get()
qcloud.setLoginUrl(config.loginUrl)
if (session) {
// 第二次登录
// 或者本地已经有登录态
// 可使用本函数更新登录态
console.log('crazy 第二次登录')
qcloud.loginWithCode({
success: res => {
this.userInfo = res
this.hasUserInfo = true
console.log('crazy 登录成功', res)
},
fail: err => {
console.log('crazy 登录失败')
console.error(err)
}
})
} else {
// 首次登录
console.log('crazy 首次登录')
qcloud.login({
success: res => {
this.userInfo = res
this.hasUserInfo = true
console.log('crazy 登录成功', res)
},
fail: err => {
console.log('crazy 登录失败')
console.error(err)
}
})
}
},
login (e) {
console.log('crazy login')
this.getWxLoginNew()
}
}
}
</script>
<style>
/**index.wxss**/
.userinfo {
display: flex;
flex-direction: column;
align-items: center;
}
.userinfo-avatar {
width: 128rpx;
height: 128rpx;
margin: 20rpx;
border-radius: 50%;
}
.userinfo-nickname {
color: #aaa;
}
.usermotto {
margin-top: 200px;
}
</style>
00 -
784510104
2018-05-20
点击button之后怎么获取到userInfo呢
012018-05-20 -
Wjkawen
2018-05-20
解决了吗?我也是这个问题
032018-05-21 -
fengyunzhu
提问者
2018-05-19
好像登录成功后数据库中也没有存贮用户信息
012018-05-21