我在Google云功能上有一个环聊聊天机器人。 我想使用rest api的message.update端点来更新bot较早发送给用户的消息之一。
问题是我不知道如何获取我的机器人刚刚发送的消息的消息ID(名称)。
例如,如果我的机器人发送了{ text: "hello" }
,后来我想将文本更改为其他内容。
在我的上下文中,每当用户向bot发送消息时,它就会调用我的函数,并且bot会回复我从该函数发回的信息。
所以当我发送“ hello”消息时,我没有使用api,只是回复了请求。
是否可以在这种情况下获取消息的名称,或者必须切换到常规api调用才能获取消息。
答案 0 :(得分:0)
我不确定云功能,但是,您可以通过常规API获得它,也可以使用API库,要回答您的问题,当您使用spaces.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