在已付费开通云开发的小程序中,点击“环境共享”-“添加共享”-添加希望使用这个云开发环境的小程序appid,完成分享的配置
使用共享环境的小程序需要在一开始进行共享环境的初始化,此处需要共享了环境的小程序appId和共享的云开发环境id
initEnv: async () => {// 初始化共享环境const cloundObj = new wx.cloud.Cloud({// 填写提供云开发共享的小程序AppIDresourceAppid: appId,// 填写提供云开发共享的云开发环境IdresourceEnv: envId,});await cloundObj.init();},
cloundObj 可认为是共享环境对象,之后的云函数调用都要用到这个对象,建议存储在全局对象里:
// 将初始化后的对象存起来
Object.assign(app.globalData, {cloundObj: cloundObj
})
...
...
// 之后其他页面或组件获取该对象:
const app = getApp();
console.log(app.globalData.cloundObj)
下面的文章中统一以cloundObj 变量表征这个值,至于如何存储、获取则由读者自行实现。
使用共享环境的小程序本身的云函数是无法设置环境的,所有的云函数都必须设置在共享了云开发环境的主小程序上
在共享了环境的小程序上部署好相关的云函数后,即可在对应的小程序上调用那边部署好的云函数:
cloundObj.callFunction({name: "", // 调用的云函数名称data: {}, // 传递数据success: function (res) {},fail: function (res) {},complete: function (res) {},
})
2022年后小程序获取openId的方式有所变化,官方文档: wx.login文档,特别记录一下
正式编写程序前先保存好appId和密钥:小程序官网,密钥一旦设置就无法明文查看,所以妥善保存好,当然也是可以重置的 ╭(′▽`)╯
const appId = xxxx; // 小程序appid
const secretId = xxx; // 小程序secretID
...
...
wx.login({success: (res) => {cloundObj.callFunction({name: 'getOpenId',data: {code: de,appId,secretId,},success: (result) => {const { openid } = result?.result ?? {};// openid已经获得}})}
})
4.2里调用了getOpenId这个云函数,在共享了环境的主小程序里新建对应的云函数:
对应的index.js内容如下
// 云函数入口文件
const cloud = require('wx-server-sdk')
var request = require('request')
const env = ''; // 待填写:环境的id
cloud.init({env
})// 云函数入口函数
exports.main = async (event, context) => {var url = `=${event.appId}&secret=${event.secretId}&js_code=${de}&grant_type=authorization_code` // 用session换取openIDreturn new Promise((resolve, reject) => {(url, (error, response, body) => {if (error) {reject()} else {try {const json = JSON.parse(body);resolve(json)} catch (e) {reject()}}})})
}
即可在小程序端获得openid
本文发布于:2024-01-30 13:34:42,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170659288620357.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |