讲解视频:https://edu.csdn.net/course/detail/9604
openid作为小程序用户的唯一标示,就相当于用户在微信里的身份证一样,我们做小程序开发时,获取用户的openid是很重要的。我们之前获取用户的openid,如下图官方文档说明,是通过该wx.login先获取临时凭证,然后再用临时凭证去换取用户的openid,这样做无可厚非,但是小程序出了云开发之后,再用这种方法获取用户openid就显得有些麻烦了,因为通过云开发获取用户openid特别方便,并且可靠。
下面就来带领大家借助云开发愉快的获取用户openid。
使用云开发之前需要简单了解下云开发,下面链接是官方学习文档。https://developers.weixin.qq.com/miniprogram/dev/wxcloud/basis/getting-started.html
一,开启云开发
开启云开发只需要在开发者工具里点击上面红色框里的云开发按钮即可,创建成功后如下图
二,创建云函数
-
1,创建云函数所需文件夹
-
2,右键点击functions,点击同步云函数列表
-
3,右键点击functions,点击新建node.js云函数
-
4,创建名为getOpenid的云函数
-
5,编写获取openid的代码
// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init()
//获取用户的openid
exports.main = async(event, context) => {
return event.userInfo; //返回用户信息
}
- 6,右键点击getOpenid,上传并部署云函数。
三,使用getOpenid云函数获取用户openid
- 1,在app.js里初始化云开发
//app.js
App({
onLaunch: function() {
//云开发初始化
wx.cloud.init({
env: 'prod-8aa9a5',
traceUser: true
})
}
})
- 2,在首页使用云函数获取openid
//home.js
Page({
data: {
openid: '',
},
onLoad: function () {
this.getOpenid();
},
// 获取用户openid
getOpenid() {
let that = this;
wx.cloud.callFunction({
name: 'getOpenid',
complete: res => {
console.log('云函数获取到的openid: ', res.result.openId)
var openid = res.result.openId;
that.setData({
openid: openid
})
}
})
}
})
获取结果如下
到此我们就轻松的借助云开发云函数获取到了用户的openid了
如果你实现过程中,有遇到如下错误
调用失败 Error: errCode: -404011 cloud function execution error | errMsg: cloud.callFunction:fail requestID , cloud function service error code -504002, error message Function not found: [login]; at cloud.callFunction api;
查看这篇文章:《微信小程序开发常见问题及解决方案》https://blog.csdn.net/qiushi_1990/article/details/90733494
有小程序相关的问题,可以加我微信2501902696(备注小程序)