Как получить сообщение с помощью Google Hangout chat spaces.message.get в узле js

#node.js #hangouts-chat #google-chat

#node.js #google-hangouts #google-чат

Вопрос:

Я интегрировал чат Google Hangout для веб-приложения node js.

Я могу получать пробелы, члены в пробелах, но я не могу получать сообщения с пробелом. Я также ссылался на документацию по ссылке ниже

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

Также здесь находится документ обнаружения:

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

Согласно документу discovery, ему нужен {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 });
  }
}
  

Пожалуйста, дайте мне решение для извлечения сообщений.
Заранее спасибо.

Комментарии:

1. Я также получаю ту же ошибку .. не могу выяснить, откуда нужно будет передавать идентификаторы сообщений

Ответ №1:

Проблема:

Я думаю, вы должны иметь возможность извлекать сообщения, созданные только через API (предполагается, что боты обрабатывают только сообщения, созданные ими самими).

В этом случае, если сообщение было создано с помощью spaces.messages.create, name подлежащее предоставлению извлекается в ответе на указанный вызов (поле name ). Фактически, весь ресурс сообщения возвращается этим методом, но name поле может быть использовано позже для обновления или удаления сообщения. В любом случае вам следует сохранять name каждое созданное вами сообщение, если вы хотите получить его позже.

Другие способы получения названия сообщения:

Кроме этого, есть способы получения messageId , но они требуют посещения пользовательского интерфейса, что делает его, вероятно, неработоспособным для вашей ситуации:

  • Нажмите на увеличительное стекло, выполните поиск по вашему сообщению и получите его URL, как описано здесь.

  • Нажмите на Forward to inbox , который отправит электронное письмо с этим сообщением, а в электронном письме нажмите Open message , которое откроет новую вкладку с URL сообщения ().

Полученный URL ( chat.google.com/{space_type}/{space_id}/{message_id} ) можно использовать для получения названия сообщения: spaces/{space_id}/messages/{message_id} , но, вероятно, это не является приемлемым решением для вашей ситуации.

Ссылка: