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

У меня есть встроенный чат Google Hangout для веб-приложения узла js.

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

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 });
  }
}

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

0 ответов

Проблема:

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

В этом случае, если сообщение было создано через space.messages.create,name to provide извлекается в ответ на указанный вызов (поле 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}, но, вероятно, не являются подходящим решением для вашей ситуации.

Ссылка:

Другие вопросы по тегам