云开发 环境共享 获取开放数据函数返回 "cloudID not belong to user."?
我发现好多人都遇到了这个问题啊, 怎么回事儿, 官方不能出个详细的文档解释一下吗?
跨环境 云函数的 获取开放数据 怎么弄呢?
// 云函数
const cloud = require('wx-server-sdk')
// 初始化 cloud
cloud.init({
// API 调用都保持和云函数当前所在环境一致
env: cloud.DYNAMIC_CURRENT_ENV
})
/**
* 这个示例将经自动鉴权过的小程序用户 openid 返回给小程序端
*
* event 参数包含小程序端调用传入的 data
*
*/
exports.main = async (event, context) => {
console.log(event)
console.log(context)
// 可执行其他自定义逻辑
// console.log 的内容可以在云开发云函数调用日志查看
// 获取 WX Context (微信调用上下文),包括 OPENID、APPID、及 UNIONID(需满足 UNIONID 获取条件)等信息
const wxContext = cloud.getWXContext();
const res = await cloud.getOpenData({ list: event.list });
return {
openid: wxContext.OPENID,
appid: wxContext.APPID,
unionid: wxContext.UNIONID,
env: wxContext.ENV,
phoneInfo:res.list
};
}
小程序 A,将云开发 环境共享给了 一个主体的 小程序B,小程序A调用 云函数 一切正常。
小程序B调用 云函数
获取手机号码等信息2
async getPhoneNumber(e) {
// 声明新的 cloud 实例
var c1 = new wx.cloud.Cloud({
// 资源方 AppID
resourceAppid: 'xxx',
// 资源方环境 ID
resourceEnv: 'xxx',
})
// 跨账号调用,必须等待 init 完成
// init 过程中,资源方小程序对应环境下的 cloudbase_auth 函数会被调用,并需返回协议字段(见下)来确认允许访问、并可自定义安全规则
await c1.init()
// 完成后正常使用资源方的已授权的云资源
await c1.callFunction({
// 云函数名称
name: 'getMobile',
// 传给云函数的参数
data: {
list: [e.detail.cloudID]
},
success: function(res) {
console.log("获取成功",res)
},
fail: console.error
})
你好,这边看到你的小程序B调用 云函数的resourceAppid 和resourceEnv都没有指定呢
没有用过,但看文档是不是应该这样?
// 完成后正常使用资源方的已授权的云资源
await c1.callFunction({
// 云函数名称
name: 'getMobile',
// 传给云函数的参数
data: {
list: c1.CloudID(e.detail.cloudID)
},
success: function(res) {
console.log("获取成功",res)
},
fail: console.error
})
https://developers.weixin.qq.com/community/develop/doc/0000804f23c79882f32fbd84156400?_at=1724649777313
类似的问题链接 基本是一个问题 也是没有解决
都是同样的错误码 CLOUD NOT BELONG TO USER.
什么代码,报这样的错,不该说一下的吗?