Ищем способ вернуть общее количество сообщений, отправленных командой через Slack API. Просматривая документацию, я не нашел способа сделать это. Было любопытно, если кто-нибудь нашел способ сделать что-то подобное.
Возврат общего количества сообщений, отправленных через Slack API
Ответы (2)
Вероятно, вам придется перебрать все каналы, группы и пользователей. Для данного канала search.messages
содержит необходимую информацию. Например, используя пакет python Slacker, мы можем подсчитать количество сообщений в @general
:
>>> import slacker
>>> token = "yourtoken"
>>> api = slacker.BaseAPI(token)
>>> api.get("search.messages", params={"query": "in:general"}).body["messages"]["total"]
19601
(Я оставляю вам перебирать все каналы и группы)
count
— это количество элементов, которые нужно вернуть на страницу, а page
— это количество страниц результатов, которые нужно вернуть. В своем вопросе вы запрашиваете количество сообщений, а не полный список всех сообщений. Как вы можете видеть в моем примере, полученном из реального Slack-канала, эти два параметра не влияют на то, как будет получено количество сообщений.
- person Régis B.; 11.04.2016
Не существует метода API, который предоставляет эту информацию напрямую, поэтому вам нужно будет вычислить эту информацию путем повторения всех существующих каналов.
Основная схема:
- Получить список всех каналов с помощью
conversations.list
- Получить все сообщения для канала с
conversations.history
. Вы можете напрямую указать интересующий вас период времени с помощью свойствlatest
иoldest
. - Суммируйте количество на канал, чтобы получить общее количество
Обратите внимание, что из-за архитектуры безопасности Slack у вас не будет доступа ко всем частным и прямым каналам обмена сообщениями. Чтобы также получить эти разговоры, вам нужно будет собрать токен от каждого из ваших пользователей, а затем использовать этот токен, чтобы получить доступ ко всему.