Возможный образец в питоне
Это не официальный пример приложения Slack API или чего-то еще, но он очень похож на то, что вы описываете - Destalinator
Написание базового сценария для достижения этого
На высоком уровне то, что вы хотите сделать, очень возможно и не должно быть слишком сложным.
Получение списка каналов
То, что вы хотите сделать, - это запланированное задание на вашем сервере, которое пингует conversations.list
. Эта конечная точка вернет массив каналов в рабочей области. Вы можете исключить уже заархивированные каналы, чтобы сделать список более управляемым. Как только у вас будет этот список, я бы предложил удалить каналы, которым created
меньше 4 месяцев, еще раз обрезав ваш список.
Получение времени последнего сообщения
После того, как у вас есть урезанный список каналов, вы захотите итерировать по нему, пинг conversations.history
на каждом канале с аргументом oldest
, установленным на ваш предпочтительный период времени, в этом случае 4 месяца.
Если ответ для данного канала содержит пустой массив messages
, то канал не получил никакого нового контента с момента, указанного в oldest
. Сохраните этот идентификатор канала где-нибудь на потом.
После того, как вы перебрали все возможные каналы, у вас должен быть меньший массив, который теперь содержит только идентификаторы каналов без контента за последние 4 месяца.
Архивация "устаревших" каналов
Единственный оставшийся шаг - заархивировать их, и мы сделаем это, используя конечную точку conversations.archive
. Единственными аргументами здесь являются token
и channel
. Поэтому перебирайте каналы для архивирования массива, нажимая эту конечную точку для каждой записи.
С этим все готово!