订阅消息 /subscribeMessage.send ,采用 云调用方式。openapi.subscribeMessage.send
j技术场景:在node环境里,调起云函数,去发送消息给已经订阅了的用户,报501007错误。
详见代码:
node-test.js
const tcb = require('@cloudbase/node-sdk');
const app = tcb.init({
secretId: "*****",
secretKey: "*****",
env: "*****"
});
sendmessagenw()
async function sendmessagenw() {
const res = await app.callFunction({
name: 'send-message',
})
console.log(res)
}
x下图云函数内容,就直接抄官方的demo
运行node文件后,报501007错误,是不是在node里调起 发订阅消息给用,只能采用 http方式?
我也遇到同类问题,就是在一个带trigger的云函数中,调用另外一个云函数,该云函数主要就是调用cloud.openapi.subscribeMessage.send,然后出现-504002错误,有点莫名其妙
errCode": -504002,
"errMsg": "callFunction:fail -504002 functions execute fail. requestID t_1647352800638_12041-17f8de0ebd5_2, TypeError: Do not know how to serialize a BigInt\n at JSON.stringify (<anonymous>)\n at callback (/var/runtime/node12/CallbackContext.js:31:23)\n at /var/runtime/node12/CallbackContext.js:81:16\n at /var/runtime/node12/Runtime.engine.js:237:13\n at processTicksAndRejections (internal/process/task_queues.js:97:5)"
}
1、先在同一环境中调试:云函数A调用云函数B,(直接调用)
2、在同一环境中调试:云函数A调用云函数B,(TCB模式调用)
3、跨环境TCB调用。
一步步排查。