首页 > 解决方案 > 如何在 Slack 中删除自 DATE 以来的所有文件?

问题描述

我想知道如何使用 Slack API 删除 30 天以来的所有文件?

标签: bashslackslack-api

解决方案


由于我没有找到该问题的 Stackoverflow 答案,因此我创建了一个单行 bash 脚本来执行此操作:

curl -X GET -H 'Authorization: Bearer xoxp-yourtoken' \
https://slack.com/api/files.list\?ts_to\=$(date -d "$date -30 days" +"%s") \
| jq -r '.files[] | .id' \
| xargs -I {} -n 1 curl -X POST -H 'Authorization: Bearer xoxp-yourtoken' \
https://slack.com/api/files.delete\?file\={}

该命令将做什么:

  1. 它将从 slack api 获取 30 天以来的所有文件列表;
  2. 它解析 JSON 答案并在换行符分隔的列表中返回文件的 ID。
  3. 然后对于每个 ID,它都会调用 files.delete。

你会需要 :

  1. jq 解析 json :sudo apt install jq
  2. 一个 Slack 授权应用程序,用于获取您的 Bearer 密钥

您需要创建一个新的 slack-api 应用程序,然后选择权限作为特性和功能,如下所示:

在此处输入图像描述

最后,您进入 OAuth & Permissions 并复制密钥。

享受!


推荐阅读