微信小程序(总结一):uniapp开发,获取微信用户信息(最新)

目录

第一章 了解趋势

第二章 准备工作 

2.1 注册微信小程序

2.2 获取小程序appId与小程序密钥

第三章 获取微信用户信息

3.1 用户登录

3.2  获取用户信息的两个方法

3.2.1 方法一(wx.getUserInfo)

3.2.2 方法二(wx.getUserProfile)

3.3 获取用户信息(现在)

第四章 获取接口调用凭据 access_token


第一章 了解趋势

随着小程序的发展,我们发现现在小程序的api,wx.getUserProfilewx.getUserInfo这两个接口已经不能满足获取到用户的基本信息了,如下图官方做出的解释:

第二章 准备工作 

2.1 注册微信小程序

微信小程序零基础入门【小程序的下载、安装与首项目配置】_小程序入门例子下载-CSDN博客

2.2 获取小程序appId与小程序密钥

第三章 获取微信用户信息

3.1 用户登录

  • 解释:通过该方法的目的就是为了获取code(登录凭证,有效时间5分钟) 
  •  作用:后续通过api接口请求,获取用户登录态信息
  • 用法:

html部分——

<template>
    <view>  
        <button @click="getLoginMethods()">调用wx.login方法</button>
	</view>
</template>

 js部分——

getLoginMethods() {
	uni.login({
		timeout: 6000,
		success: (res) => {
			console.log('success:login方法返回的值:', res)
		},
		fail(err) {
			console.log('fail:login方法返回错误:', err)
		},
		complete(val) {
			console.log('complete:login方法完成后返回值', val)
		}
	})
}
  • 返回结果

  • 该code的有效期只有5分钟

3.2  获取用户信息的两个方法

3.2.1 方法一(wx.getUserInfo)

  • 使用wx.getUserInfo请求用户授权获取用户信息
getUserInfoMethods() {
	uni.login({
		timeout: 6000,
		success: (res) => {
			console.log('success:login方法返回的值:', res)
			uni.getUserInfo({
				success(userInfo) {
					console.log('用户信息:', userInfo)
				}
			})
		},
		fail(err) {
			console.log('fail:login方法返回错误:', err)
		}
	})
}
  • 输出结果

  • 目前微信小程序返回的用户信息是默认灰色头像以及"微信用户"的昵称,其他信息都不会返回,小编后续会出微信头像与微信用户昵称怎么获取的流程。

3.2.2 方法二(wx.getUserProfile)

getUserInfoMethods() {
	uni.login({
		timeout: 6000,
		success: (res) => {
			console.log('success:login方法返回的值:', res)
			if (uni.getUserProfile) {
				uni.getUserProfile({
					desc: '授权登录',
					success(userInfo) {
						console.log('用户信息:', userInfo)
					}
				})
			} else {
				console.log('方法不可用!')
			}
		},
		fail(err) {
			console.log('fail:login方法返回错误:', err)
		}
	})
}

3.3 获取用户信息(现在常用

html部分——

<template>
    <view>  
        <button @click="getUserInfo()">获取用户登录信息</button>
	</view>
</template>

 js部分——

这里需要获取微信小程序的appid与密钥,在准备工作有说如何获取

getUserInfo() {
	uni.login({
		success (res) {
			console.log('login', res)
			// 通过uni.login获取到临时登录凭证code
			if (res.code) {
				//发起网络请求
				uni.request({
					url: 'https://api.weixin.qq.com/sns/jscode2session',
					data: {
						appid: '微信小程序appid',
						secret: '微信小程序密钥',
						js_code: res.code, // wx.login登录code
						grant_type: 'authorization_code' // 固定赋值
					},
					success(res) {
						console.log('res', res)
						_this.openid = res.data.openid 
					}
				})
			} else {
				console.log('登录失败!' + res.errMsg)
			}
		}
	})
},

  • 返回的结果:

  • 至此,现在最常使用的获取用户信息的方法就结束了,由于微信小程序的调整,目前用户的详细信息已经被加密,具体是拿不到的,所以只需要拿到唯一识别的openid即可

第四章 获取接口调用凭据 access_token

  • 注意文档,是post请求

  • 请求参数 

 html部分——

<template>
    <view>  
        <button @click="getAccessToken()">获取access_token信息</button>
	</view>
</template>

 js部分——

getAccessToken() {
	uni.request({
		url: 'https://api.weixin.qq.com/cgi-bin/stable_token',
		method: 'POST',
		data: {
			appid: '微信小程序appid',
			secret: '微信小程序密钥',
			grant_type: 'client_credential' // 看文档直接赋值即可
		},
		success(res) {
			console.log('access_token', res)
		}
	})
},
  • 结果:已经获取到access_token,保存即可,后续调用接口需要使用该access_token的值

  • 24
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
uniapp开发微信小程序中,可以通过微信授权的方式获取用户的信息,包括头像、昵称和手机号。具体步骤如下: 1. 使用uni.login()方法获取微信提供的code码。 2. 使用获取到的code码,可以获取用户的唯一标识openid和会话密钥sessionkey,用于解密获取手机的加密信息。 3. 使用微信提供的getphonenumber方法,获取encryptedData和iv两个字段的内容。 4. 使用微信提供的解密方法,可以得到最终的手机号。 5. 要获取用户的头像、昵称等信息,可以直接调用uni.getUserProfile()方法。 通过以上步骤,就可以在uniapp微信小程序获取用户的信息了。引用\[2\]\[3\] #### 引用[.reference_title] - *1* *3* [uniapp小程序中登录,获取用户信息获取手机号逻辑记录](https://blog.csdn.net/u011608672/article/details/124713671)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [uniapp小程序登录,获取用户信息获取手机号等流程](https://blog.csdn.net/tutodelinglimgho/article/details/131321975)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值