【问题标题】:Hangout Chats Monitoring环聊聊天监控
【发布时间】:2020-03-19 10:18:41
【问题描述】:

我们能否有 API 来监控我们组织内环聊中不同用户和群组之间的聊天。这将有助于管理员更好地控制组织内正在传达的内容以及控制组织外的内容。此外,如果存在任何这些类型的 API,我可以在其中获取所有用户的详细聊天信息,请告诉我。

【问题讨论】:

    标签: hangout hangouts-chat hangouts-api google-hangouts


    【解决方案1】:

    可以通过 Gmail API 获取 Google 聊天的消息,您可以发出 Messages.List 请求以获取来自 Chat 和 Gmail 的所有消息。要仅按聊天中的人进行过滤,可以使用以下查询 q 参数:

    label:CHAT

    通过Messages.Get 请求,您可以获得每条消息的数据。

    最后,这只会为您提供您使用凭据的用户的数据,以获取您需要使用 service account with domain wide delegation 的所有组织的数据,以便模拟域中的每个用户并成为能够使用每个用户的凭据执行上述过程。

    编辑

    由于您还需要聊天组的信息作为名称和成员,因此您需要使用 Hangouts Chat API 并使用服务帐户凭据设置应用程序/机器人,如example 中所述,使用 Python:

    from httplib2 import Http
    from oauth2client.service_account import ServiceAccountCredentials
    from apiclient.discovery import build
    scopes = 'https://www.googleapis.com/auth/chat.bot'
    credentials = ServiceAccountCredentials.from_json_keyfile_name(
        'service-account.json', scopes)
    chat = build('chat', 'v1', http=credentials.authorize(Http()))
    resp = chat.spaces().messages().create(
        parent='spaces/AAAA2CiqVDM', # use your space here
        body={'text': 'Test message'}).execute()
    print(resp)
    

    上面的代码发出了一个消息创建请求,但同样你可以用它来创建任何其他available requests。您也可以使用不同的language library

    【讨论】:

    • 感谢您的回复。我面临的问题是,在群组的情况下,我们无法获取群组的详细信息,例如群组名称或群组成员以及任何群组特定操作,例如添加或删除成员。
    • 另外,在这个聊天中,两个用户之间有不同的 threadId 和 id,这使得很难知道这两个聊天是否相同或不同。为什么谷歌不为 1 个聊天室提供任何通用 ID,例如 gmail 的消息 ID。
    • 我编辑了我的答案以回复您的第一条评论。对于您的第二条评论,您所说的是真的,他们对不同的用户有不同的线程 ID,这是 Gmail API 中所有邮件的预期行为。但是聊天 API 有一种不同的方式来处理 threads,你可能想看看它是如何工作的。
    猜你喜欢
    • 1970-01-01
    • 2017-01-09
    • 1970-01-01
    • 2018-10-13
    • 1970-01-01
    • 2019-11-18
    • 2017-08-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多