1

我在谷歌云功能上有一个环聊聊天机器人。我想使用 rest api 的 message.update 端点来更新机器人之前发送给用户的消息之一。

问题是我无法弄清楚如何获取我的机器人刚刚发送的消息的消息 ID(名称)。

例如,如果我的机器人发送{ text: "hello" },然后我想将文本更改为其他内容。

在我的上下文中,每当用户向机器人发送消息时,它都会调用我的函数,机器人会回复我从函数返回的任何内容。

所以当我发送“你好”消息时,我没有使用 api,只是回复请求。

有没有办法在这种情况下获取消息的名称,或者我必须切换到常规的 api 调用才能得到它。

4

1 回答 1

0

我不确定云功能,但是,您将在常规 API 中获得它,或者您可以使用 API 库来回答您的问题,当您使用 space.messages.create 创建消息时,它会返回消息 ID 作为响应,您可以使用它更新消息 API 中的消息 ID。

检查以下来自创建消息 API 的响应,

{
  "name": "spaces/u********E/messages/N*********M.N*********M", **//last one is messageId**

        "sender": {
            "name": "users/1***************2",
            "displayName": "",
            "type": "BOT"
        },
        "text": "hello world",
        "cards": [],
        "previewText": "",
        "annotations": [],
        "thread": {
            "name": "spaces/u********E/threads/N********M"
        },
        "space": {
            "name": "spaces/u********E",
            "type": "DM",
            "displayName": ""
        },
        "fallbackText": "",
        "argumentText": "Hello World",
        "createTime": "2019-03-07T07:44:06.430607Z"
    }

另请参阅发现文档。

https://chat.googleapis.com/$discovery/rest?version=v1

在这里,您将使用库实现创建消息。

https://github.com/googleapis/google-api-nodejs-client/issues/1123#issuecomment-396111871
于 2019-03-07T09:51:42.063 回答