如何获取未将谷歌聊天机器人添加到其覆盖范围的用户的空间Id



我们正在实现一个谷歌聊天机器人,它将向域中的用户发送主动通知。为此,Google聊天机器人API需要空间Id来向用户发送主动通知。

参考文件:https://developers.google.com/hangouts/chat/reference/rest/v1/spaces/list

代码:

jwtClient.authorize(function (err) {
if (err) {
console.log(err);
return;
}
else {
chat.spaces.list({
auth: jwtClient
}, function (err, resp) {
if (err)
console.log(err);
else {
chat.spaces.list({
auth: jwtClient
}, function (err, resp) {
if (err)
console.log(err);
else {
var spaceList = resp.data.spaces;
spaceList.forEach(element => {
var spaceUrl = `https://chat.googleapis.com/v1/${element.name}/messages?key=${apiKey}`;
request({
url: spaceUrl,
method: "POST",
headers: {
'Content-Type': 'application/json'
},
json: customMessage
},
function (error, response, body) {
callback(error, body)
}
);
})
};
});
}
});
}
});
}
}

但这个API只返回那些用户的空间列表,这些用户已经将Bot添加到了他们的覆盖中。

他们是否有任何工作来获得/创建谷歌域中每个用户的空间?

不幸的是,如果用户不与机器人互动,就无法提取空间ID。允许这样做,机器人就可以在未经同意的情况下随时向任何用户发送垃圾邮件。

我建议将空间ID存储到数据库中。因此,一旦用户开始与机器人对话,您以后可以随时向他们发送消息。添加机器人程序或在房间中与之交互是机器人程序向用户发送消息所需的"同意"。

最新更新