我想知道自30天以来如何使用Slack API删除所有文件吗?
答案 0 :(得分:1)
由于我没有找到该问题的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应用,然后像下面一样选择Permissions作为功能部件:
最后,您进入“ OAuth和权限”并复制密钥。
享受!
答案 1 :(得分:1)
(不是答案,而是很大的评论)
我不是巨大的单线粉丝。这样更易于维护:
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