【问题标题】:Returning Total Number of Messages Sent Via Slack API返回通过 Slack API 发送的消息总数
【发布时间】:2015-11-09 15:50:56
【问题描述】:

寻找一种方法来返回团队通过 Slack API 发送的消息总数。浏览文档我还没有遇到过这样做的方法。很好奇是否有人找到了做类似事情的方法。

【问题讨论】:

    标签: slack-api slack


    【解决方案1】:

    您可能必须遍历所有渠道、组和用户。对于给定的频道,search.messages endoint 包含您需要的信息。比如使用python Slacker包,我们可以统计@general中的消息数量:

    >>> import slacker
    >>> token = "yourtoken"
    >>> api = slacker.BaseAPI(token)
    >>> api.get("search.messages", params={"query": "in:general"}).body["messages"]["total"]
    19601
    

    (我留给你遍历所有频道和组)

    【讨论】:

    • 请注意此方法的最大计数值为1000,最大页面值为100。
    • count 是“每页要返回的项目数”,page 是“要返回的结果页数”。在您的问题中,您询问消息的数量,而不是所有消息的完整列表。在我的示例中可以看到,从真实的 Slack 通道获取,这两个参数不影响消息数量的获取方式。
    【解决方案2】:

    没有直接提供该信息的 API 方法,因此您需要通过迭代所有现有通道来计算该信息。

    基本大纲:

    1. 使用conversations.list获取所有频道列表
    2. 获取频道的所有消息 conversations.history。您可以使用latestoldest 属性直接指定您感兴趣的时间段
    3. 将每个通道的计数相加得到总数

    请注意,由于 Slack 的安全架构,您将无法访问所有私人和直接消息传递渠道。要获得这些对话,您还需要从每个用户那里收集一个令牌,然后使用这些令牌访问所有内容。

    【讨论】:

      猜你喜欢
      • 2020-08-15
      • 2022-01-12
      • 1970-01-01
      • 1970-01-01
      • 2019-07-06
      • 1970-01-01
      • 2018-11-15
      • 1970-01-01
      • 2022-12-05
      相关资源
      最近更新 更多