Google api 如何获取尚未将Google聊天机器人添加到其coversation中的用户的空间Id
我们正在实现一个Google hangout聊天机器人,它将向域中的用户发送主动通知。为此,Google聊天机器人API需要空间Id向用户发送主动通知 参考文件: 代码:Google api 如何获取尚未将Google聊天机器人添加到其coversation中的用户的空间Id,google-api,chatbot,google-hangouts,hangouts-api,hangouts-chat,Google Api,Chatbot,Google Hangouts,Hangouts Api,Hangouts Chat,我们正在实现一个Google hangout聊天机器人,它将向域中的用户发送主动通知。为此,Google聊天机器人API需要空间Id向用户发送主动通知 参考文件: 代码: jwtClient.authorize(function (err) { if (err) { console.log(err); return; }
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仅返回已将机器人添加到其coversation中的用户的空间列表
他们是否需要为google域中的每个用户获取/创建空间?不幸的是,如果用户没有与机器人交互,就无法提取空间ID。允许这样做将使机器人能够在未经同意的情况下随时向任何用户发送垃圾邮件
我建议将空间ID存储到数据库中。因此,一旦用户开始与机器人对话,您就可以随时向他们发送消息。添加bot或在房间中与之交互是bot向用户发送消息所需的“同意”。我们从gsuite域获得的空间id。因此,不应该出现垃圾邮件的情况。Bot只能与域中的用户交互。是的,Bot只能与域中的用户交互,我同意Google应该提供一种检索域中所有用户的空间id的方法。然而,这只是API的第一个版本,所以这可能会在未来的版本中得到解决。希望Google添加一种方法来检索空间ID。我在ADDED_to_Space事件中获取空间ID,并将其存储在他们的员工记录中。在我的发送消息例程中,如果我在他们的员工记录上找不到空间ID,我会发送一封电子邮件,要求他们与机器人交互。只有1/3的员工添加了机器人。即使在一年后,这个问题仍然困扰着我们!!与我们的情况相同-只有1/3的员工添加了bot