onst getAuthorizerRefreshTokenFn = async (authorizer_appid) => { return new Promise((resolve, reject) => { request( { method: "post", url: "https://api.weixin.qq.com/cgi-bin/component/api_get_authorizer_list", body: JSON.stringify({ component_appid: "wx ", offset: 0, count: 100, // 获取更多数据以确保能找到目标appid }), headers: { "Content-Type": "application/json", }, }, function (error, response) { if (error) { console.log("接口返回错误", error); reject(error.toString()); } else { console.log("接口返回内容", response.body); try { const responseData = JSON.parse(response.body); // 查找特定的authorizer_appid const targetApp = responseData.list.find( item => item.authorizer_appid === authorizer_appid ); if (targetApp) { // 返回找到的refresh_token resolve(targetApp.refresh_token); } else { // 如果没有找到目标appid reject("未找到指定的authorizer_appid: " + authorizer_appid); } } catch (parseError) { console.log("解析响应数据失败", parseError); reject(parseError.toString()); } } } ); }); } // // 获取授权令牌 const getAuthorizerToken = async (authorizer_appid) => { const authorizer_refresh_token = await getAuthorizerRefreshTokenFn(authorizer_appid) // const authorizer_refresh_token = 'refreshtoken@@@m9pvkrGFRuQr_yR8_h3RRauuQZPI5Uu45ybpBwEFf8M' console.log('authorizer_refresh_token',authorizer_refresh_token); return new Promise((resolve, reject) => { request( { method: "post", url: "https://api.weixin.qq.com/cgi-bin/component/api_authorizer_token?", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ component_appid: "", authorizer_appid: authorizer_appid, authorizer_refresh_token: authorizer_refresh_token, }), }, function (error, response) { if (error) { console.log("获取authorizer_access_token失败", error); reject(error.toString()); } else { console.log("获取authorizer_access_token成功", response.body); try { const responseData = JSON.parse(response.body); if (responseData.authorizer_access_token) { resolve(responseData.authorizer_access_token); } else { reject("返回数据中没有authorizer_access_token: " + response.body); } } catch (parseError) { console.log("解析响应数据失败", parseError); reject(parseError.toString()); } } } ); }); } app.get("/xbGetMenuInfo", async (req, res) => { try { const authorizer_access_token = await getAuthorizerToken(''); console.log('authorizer_access_token',authorizer_access_token); // 如果成功获取到refresh_token,继续执行后续逻辑 return new Promise((resolve, reject) => { const url = "http://api.weixin.qq.com/cgi-bin/get_current_selfmenu_info?authorizer_access_token="+authorizer_access_token console.log('url222',url) request( { method: "post", url, headers: { "Content-Type": "application/json" }, }, function (error, response) { if (error) { console.log("接口返回错误", error); reject(error.toString()); } else { console.log("接口返回内容", response.body); resolve(response.body); res.send(response.body); } } ); }); } catch (error) { // 如果getAuthorizerTokenFn抛出错误,直接返回错误信息,不继续执行 console.log("获取refresh_token失败:", error); res.status(400).send({ success: false, message: error.toString() }); } }); 还是48001
第三方平台的微信云托管手动创建环境,把环境分享给异主体公众号,公众号是否可以直接调用授权的API?我手动创建的环境,(调官方的componenttcb/createenv现在报50100),我把创建好的环境B给异主体的公众号BB。我用的是c架构 [图片] [图片] app.post("/xbShareEnvironment", async (req, res) => { const { env, appids } = req.body; if (!env || typeof env !== "string") { return res.status(400).send({ error: "缺少或非法的 env 参数", message: "请在请求体中提供 env,且为字符串" }); } // 校验 appids if (!Array.isArray(appids) || appids.length === 0 || !appids.every(id => typeof id === "string")) { return res.status(400).send({ error: "缺少或非法的 appids 参数", message: "请在请求体中提供 appids,且为字符串数组" }); } request( { method: "post", url: "https://api.weixin.qq.com/componenttcb/batchshareenv", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ data: [ { env: env, appids: appids } ] }) }, function (error, response) { if (error) { console.log("接口返回错误", error); res.status(500).send({ error: error.toString() }); } else { console.log("接口返回内容", response.body); res.send(response.body); } } ); }); 分享这里是可以走通的 [图片] 我已经拿到了公众号的1/2权限 那我现在调 [图片] app.get("/xbGetMenuInfo", async (req, res) => { return new Promise((resolve, reject) => { request( { method: "post", url: "https://api.weixin.qq.com/cgi-bin/get_current_selfmenu_info", 试一试加appid 不加s url: "http://api.weixin.qq.com/cgi-bin/get_current_selfmenu_info?from_appid=wx。。。。", headers: { "Content-Type": "application/json" }, }, function (error, response) { if (error) { console.log("接口返回错误", error); reject(error.toString()); } else { console.log("接口返回内容", response.body); resolve(response.body); res.send(response.body); } } ); }); }); 我是云托管按官方的是免authorizer_access_token的 加权限了 现在报{"errcode":48001,"errmsg":"api unauthorized rid: 686dde7c-7561cfde-5ac37bb9"} 后来我加了appid,最后调接口把authorizer_access_token我拼接上去了还是48001,哪一步有问题啊?
07-09This env type is not available。Please choose another one TcbCode: [ResourcesSoldOut.PostpayPackageNotAvailable] rid: 686ca839-1842bcc8-373af883 我也是手动创建吧
云开发API创建环境显示卖完了?https://developers.weixin.qq.com/doc/oplatform/openApi/OpenApiDoc/cloudbase-common/env-management/createEnv.html 这个创建云开发环境的,采用后付费模式,是不是已经停止了? 025-04-20T04:48:38.960Z 8b30f60b-9079-4068-9c8d-66fe9fa5ab06 createEnvAndResource 2025-04-20T04:48:39.254Z 8b30f60b-9079-4068-9c8d-66fe9fa5ab06 { errcode: -501000, errmsg: 'This env type is not available。Please choose another one TcbCode: [ResourcesSoldOut.PostpayPackageNotAvailable] rid: 68047ca6-571a3dc1-1519ef7d' }
07-08[图片]
现在就想知道,微信公众号的云函数,是不是只能在同主体的小程序里的函数列表里调?选择公众号网页压根连操作目录都没有我怎么建文件夹,怎么上传?还想问一句微信公众号的文档,是给中国人看的吗?说清楚就那么难吗?
06-27