3

我已经为节点 js Web 应用程序集成了 Google Hangout 聊天。

我能够获得空间,空间中的成员,但我无法获得空间消息。我还从下面的链接中引用了文档

https://developers.google.com/hangouts/chat/reference/rest/v1/spaces.messages/get 

这里还有发现文件:

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

根据发现文档,它需要 {messageId} 作为参数,但我不确定在哪里可以find/get messageId

请在下面找到我的代码:

module.exports.getMessage = async function (req, res) {
  try {
    let jwtClient = new google.auth.JWT(
      configAuth.hangout.client_email,
      null,
      configAuth.hangout.private_key, ['https://www.googleapis.com/auth/chat.bot']);
    const chat = google.chat({ version: 'v1', auth: jwtClient });
    chat.spaces.messages.get({
      name: `spaces/${req.query.spaceId}`, // here I also tried to add "/messages" but it gives 404
    })
      .then(result => {
        return res.json({ success: true, error: false, result: result.data });
      })
      .catch(err => {
        return res.json({ success: false, error: true, result: err });

      });
  } catch (error) {
    return res.json({ success: false, error: true, message: error });
  }
}

请给我一个解决方案来获取消息。提前致谢。

4

1 回答 1

0

问题:

我认为您应该只能检索通过 API 创建的消息(机器人应该只处理自己创建的消息)。

在这种情况下,如果消息是通过spaces.messages.create创建的,name则在对引用的调用(字段)的响应中检索 to provide name。实际上,所有的消息资源都是通过这个方法返回的,但是该name字段可以用于以后更新删除消息。无论如何,name如果您想稍后检索它,您应该存储您创建的每条消息。

其他检索消息名称的方法:

除此之外,还有一些获取 的方法messageId,但它们需要访问 UI,这使得它可能不适用于您的情况:

  • 单击放大镜,搜索您的消息并获取其 URL,如此所述。

  • 单击Forward to inbox,将发送一封包含此消息的电子邮件,然后在电子邮件中单击Open message,这将打开一个带有消息 URL () 的新选项卡。

检索到的 URL ( chat.google.com/{space_type}/{space_id}/{message_id}) 可用于获取消息名称:spaces/{space_id}/messages/{message_id},但可能不构成适合您情况的可行解决方案。

参考:

于 2020-05-18T13:41:49.563 回答