微信小程序云开发获取openid

前言

开发者可以使用云开发开发微信小程序、小游戏,无需搭建服务器,即可使用云端能力。

云开发为开发者提供完整的原生云端支持和微信服务支持,弱化后端和运维概念,无需搭建服务器,使用平台提供的 API 进行核心业务开发,即可实现快速上线和迭代,同时这一能力,同开发者已经使用的云服务相互兼容,并不互斥。

云开发提供了几大基础能力支持:

能力作用 &说明
云函数无需自建服务器 在云端运行的代码,微信私有协议天然鉴权,开发者只需编写自身业务逻辑代码
数据库无需自建数据库 一个既可在小程序前端操作,也能在云函数中读写的 JSON 数据库
存储无需自建存储和 CDN 在小程序前端直接上传/下载云端文件,在云开发控制台可视化管理
云调用原生微信服务集成 基于云函数免鉴权使用小程序开放接口的能力,包括服务端调用、获取开放数据等能力

实现效果图

在这里插入图片描述
如果想观察具体效果,你可以微信搜索陌然 Tool或者保存小程序二维码去微信扫一扫,本小程序提供了丰富的案例可供零基础开发者学习借鉴。
在这里插入图片描述

代码

详细的内容在代码中有注释,希望对你有所帮助

// pages/cloud/GetOpenID/index.js
const app = getApp()
Page({


  data: {
    userInfo: null,
    openID: '',
    detail: '点击头像显示你的详细信息',
    showDetail: false
  },


  onLoad: function(options) {
    this.setData({
      userInfo: app.globalData.userInfo // 从App全局变量获得用户信息
    })
    this.GetOpenID()
  },
  // 定义获取用户OpenID的函数
  GetOpenID: function() {
    var that = this;
    wx.showLoading({ // 显示加载提示框
      title: '获取openID。。。',
    })
    wx.cloud.callFunction({ // 调用云函数
      name: 'login', // 函数名称
      data: {}, // 函数参数
      complete: res => { // 调用完成时的回调函数
        wx.hideLoading() // 隐藏加载提示框
      },
      success: res => { // 调用成功时的回调函数
        console.log('[云函数] [login] user openid: ', res.result.openid)
        that.setData({ // 设置页面绑定数据
          openID: '[云函数]获取openID成功:' + res.result.openid,
          showDetail: true
        })
        wx.setStorageSync("openID", res.result.openid) // 同步存储用户的OpenID到本地
      },
      fail: err => { // 调用失败时的回调函数
        console.error('[云函数] [login] 调用失败', err)
        that.setData({ // 设置页面绑定数据
          openID: '[云函数]获取openID失败' + err
        })
      }
    })
  },
  // 定义获取用户详细信息的函数
  GetDetail: function() {
    var userInf = this.data.userInfo;
    var gender = (userInf.gender == 1) ? "男" : (userInf.gender == 2) ? "女" : "未知";
    var detailStr = "性别:" + gender;
    detailStr = detailStr + "\n国家:" + userInf.country;
    detailStr = detailStr + "\n省份:" + userInf.province;
    detailStr = detailStr + "\n城市:" + userInf.city;
    this.setData({ // 设置页面绑定数据
      detail: detailStr
    })
  },
  onShareAppMessage: function() {

  }
})
<!--pages/cloud/GetOpenID/index.wxml-->
<view class='box'>
  <view class='title'>获取OpenID</view>
  <view class='userinfo'>
      <image bindtap='GetDetail' class='userinfo-avatar' src='{{userInfo.avatarUrl}}' mode='cover'></image>
      <text class='userinfo-nickname'>{{userInfo.nickName}}</text>
  </view>
  <view class='user-openid'>
    <text>{{openID}}</text>
  </view>
  <view class='user-detail' wx:if='{{showDetail}}'>  
    <text>{{detail}}</text>
  </view>
</view>
/* pages/cloud/GetOpenID/index.wxss */
page{
  font-size: 14px;
}
.userinfo {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.userinfo-avatar {
  width: 128rpx;
  height: 128rpx;
  margin: 20rpx;
  border-radius: 50%;
}

.userinfo-nickname {
  color: #aaa;
}

.user-openid {
  margin: 60rpx 30rpx;
  color:#0066ff;
}

.user-detail{
  margin: 60rpx 30rpx;
  text-align: left;
  color: black
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码前哨站

你的鼓励将是我创作的最大动力。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值