#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}
, но, вероятно, это не является приемлемым решением для вашей ситуации.