如何获取 space 未将 Google 聊天机器人添加到其讨论中的用户的 ID

How to get space Id of users who have not added Google Chat Bot to their coversation

我们正在实施 Google 环聊聊天机器人,它将主动向域中的用户发送通知。为此 Google 聊天机器人 API 需要 space 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 returns space 列表仅包含已将 Bot 添加到他们的讨论中的那些用户。

他们是否对 get/create space of/to google 域中的每个用户采取了任何措施?

遗憾的是,如果用户不与机器人交互,就无法提取 Space ID。允许这样做将使机器人能够在未经同意的情况下随时向任何用户发送垃圾邮件。

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