我想知道如何使用Slack API从30天后删除所有文件?
由于我没有找到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\={}
这个命令会做什么:
你会需要 :
sudo apt install jq
您需要创建一个新的slack-api应用程序,然后选择权限作为特征和功能,如下所示:
最后,您进入OAuth和权限并复制密钥。
请享用!
(不是答案,而是一个很大的评论)
我不是巨大的一线队员的忠实粉丝。如何更容易维护:
list_files() {
local last_month=$(date -d "30 days ago" "+%s")
local url="https://slack.com/api/files.list?ts_to=$last_month"
local curl_opts=(
-X GET
-H "Authorization: Bearer $token"
)
curl "${curl_opts[@]}" "$url"
}
extract_ids() {
jq -r '.files[] | .id'
}
delete_files() {
local url="https://slack.com/api/files.delete?file={}"
local curl_opts=(
-X POST
-H "Authorization: Bearer $token"
)
xargs -I {} -n 1 curl "${curl_opts[@]}" "$url"
}
token='xoxp-yourtoken'
list_files | extract_ids | delete_files