sendCommandToDevice
端点似乎不可用。我尝试直接从设备页面上的云控制台发送命令。左下角的通知是Command sent to device
,但Chrome的检查器显示了 503 错误。错误时间: 17:46:02 UTC 2018年10月27日,星期六
请求:
Request URL: https://cloudiot.clients6.google.com/v1/projects/<project-id>/locations/<location-name>/registries/<registry-name>/devices/<device-name>/:sendCommandToDevice?key=<removed>
Request Method: POST
Status Code: 503
Remote Address: 216.58.196.74:443
Referrer Policy: no-referrer-when-downgrade
Payload: {binaryData: "eyJ0ZXN0IjoxfQ==", subfolder: ""}
响应:
{
"error": {
"code": 503,
"message": "The service is currently unavailable.",
"status": "UNAVAILABLE"
}
}
此外,nodejs客户端库(34.0.0)中没有附加说明sendCommandToDevice
。我必须进行API发现才能使用该方法。
答案 0 :(得分:0)
您仍然收到503吗?我刚刚对此进行了测试,并能够成功接收消息。
此外,由于客户端库中缺少Commands功能的可用性,Commands仍处于Beta中,一旦完全发布,这些方法将在客户端库中可用。
答案 1 :(得分:0)
这可能是由于
问题是必须指定subfolder
必须,并且必须不能为空字符串。
就像我在Firebase函数中使用它一样,我只对所有没有特定子文件夹的命令使用firebase
子文件夹
const request = {
name: `${registryName}/devices/${deviceId}`,
binaryData: Buffer.from(JSON.stringify(commandMessage)).toString("base64"),
subfolder: 'firebase'
}
这里的功能取决于:
"dependencies": {
"firebase-admin": "^6.4.0",
"firebase-functions": "^2.1.0",
"fs-extra": "^7.0.0",
"googleapis": "^36.0.0",
},