已找到问题: 云调用openapi的触发,必须用云函数触发。如果自己的逻辑是指定条件触发,可以用云函数的定时器触发。 我之前出错是因为:由外部的一套 node服务,用“@cloudbase/node-sdk”包触发的云函数。 我目前的技术架构是: 部分逻辑用云函数实现,部分逻辑在一个 node 的服务中实现。模板消息逻辑:触发指定条件后,由云函数批量塞到rocketmq消息队列中。然后在 node 中按一定的速度操作消息队列并发送。(为了削峰填谷并维护模板消息的状态)如果在 node 中用 http 接口发送,需要自己维护 access_token,再加上我做的消息队列服务这块要同时服务很多小程序,会比较复杂。因此把消息内容发回指定的小程序云函数发送,这样就不用维护多套access_token。结论: 不知道云函数为什么要做这个限制。我目前准备把发送订阅消息,全部在 node 中用 http 接口发送。 大家有什么其他的方案,也可以给我留言。
云调用subscribeMessage.send出现如下问题如何解决?一、云调用错误如下: Error: errCode: -501007 invalid parameters | errMsg: subscribeMessage.send:fail missing wxCloudApiToken 二、附源码: async function batchSend(event) { const { messages } = event console.info({event: JSON.stringify(event)}) console.info('处理订阅消息', messages.length) // 循环消息列表 const sendPromises = messages.map(async message => { let { touser, page, data, templateId } = message // 发送订阅消息 await cloud.openapi.subscribeMessage.send({ touser, templateId, page, data, }) }); await Promise.all(sendPromises) } 三、现象描述: 直接云端测试云函数5 次, 结果:失败、成功、失败、成功、成功。一旦出错后,会一直报上述错误。需要调用其他云调用成功一次,才可以恢复。恢复后又是间歇性失败。其他云调用,如“cloud.openapi.wxacode.getUnlimited”从不会失败。总结:这个问题已经追踪了两天了,仍然没有找到必现的规律,失败的概率很大,很容易复现。跟其他人说的miniprogram_statestring参数也无关,因为我一直没有传此参数,默认值为formal。
2021-03-25出现错误:“Error: errCode: -501007 invalid parameters | errMsg: subscribeMessage.send:fail missing wxCloudApiToken” 现象描述:发送订阅消息间歇性失败 直接云端测试云函数5 次, 结果:失败、成功、失败、成功、成功。一旦出错后,会一直报上述错误。需要调用其他云调用成功一次,才可以恢复。恢复后又是间歇性失败。其他云调用,如“cloud.openapi.wxacode.getUnlimited”从不会失败。总结:这个问题已经追踪了两天了,仍然没有找到必现的规律,失败的概率很大,很容易复现。跟楼上说的miniprogram_statestring也无关,因为我一直没有传此参数,默认值为formal。
如何解决微信订阅消息发送失败fail missing wxCloudApiToken的问题?我是定义了一个云函数 [图片] 然后在开发工具中,使用云调用来调用这个函数,但我手机没收到订阅消息通知,日志里面报错: {"errCode":-501007,"errMsg":"subscribeMessage.send:fail missing wxCloudApiToken"} 请问下有什么解决的思路吗?
2021-03-25我也是哇,每次 0 点多一点时,获取的新 access_token 总是失效的。 我猜测是不是不能写死 2 小时刷新,而是根据 expires_in 来确定下次刷新时间。 如果还不行,估计得在超时后自己再获取一次。
万分紧急!凌晨0点到2点access_token老是报40001麻烦官方帮忙查下url='https://api.weixin.qq.com/cgi-bin/midas/pay?access_token=20_Y8m5gyZRxsmBT6gTOdv2gS2DSxOO9Yb37Fb0KqWDGGJBo945gS6kx2vMKoW4sUt5XpqVR4DEQCSL2HAm5ngPzAz4l9v9Hf7h4Rwmzov916PFwRfZY_ferswtJaYeX-LC0RpKLgspl8s1awJKWBVcAIASXR' {"errcode":40001,"errmsg":"invalid credential, access_token is invalid or not latest hint: [94RgKA0542vr30!]"} 经常0点到2点的时候会报40001,其他时间点都没问题 造成用户充值了拿不到奖励,万分紧急,麻烦官方帮忙查下看我们的token刷新时间,判断下是不是被其他地方刷新了 appID:wx795d2669fdcc6c0e
2019-09-10结果多次测试,总结下: 公众号的模板消息,跳转小程序,并携带页面参数时: 1. 如果小程序未上线,使用pagepath会报错,使用 path 不报错。 2. 如果小程序已上线,则 pagepath和path都不报错,也都能正确跳转到小程序。但使用 path 的话,路径中携带的参数会失效。 因此,作为最终发布版本,大家一定要使用pagepath。微信官方文档中现在也是pagepath。 网络上有很多人说 pagepath 不对,应该用 path。这种说法某种层面下也是对的,但前提是他们可能没有用到页面参数。 而为什么现在仍然要保留 path 这个参数,让开发者这么混乱?我估计是因为:如今已上线的很多小程序,用的是 path,官方不能随意把此参数干掉了,因为要考虑已发布的一些小程序的兼容性。 官方至于为什么最开始 path 能生效,估计是最开始写文档的人犯了个错,最终导致了这个历史遗留问题。
微信公众号推送跳转至小程序指定页面按照微信公众号模板消息API设置完 小程序APPID以及path参数之后 点击收到的推送,能打开配置的小程序,但是打开的是小程序的首页 请问公众号模板消息推送时,其小程序的path参数如何赋值 我们目前是如下方式编码,但无效 [代码] "miniprogram":{ "appid":"wxb6c4a1776384c210", "path":"pages/Discuss/DiscussInfo/DiscussInfo?DicGroupId=39" }, [代码][代码] [代码]
2019-08-27