4

我们正在实施一个 Google 环聊聊天机器人,它将主动向域中的用户发送通知。为此,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 只返回那些用户的空间列表,这些用户已经将机器人添加到他们的覆盖中。

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

4

1 回答 1

2

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

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

于 2018-07-18T19:21:08.597 回答