Skip to content

Instantly share code, notes, and snippets.

@okash1n
Last active February 20, 2023 06:57
Show Gist options
  • Save okash1n/44ccb0fb6795378cbcc96f07188549e3 to your computer and use it in GitHub Desktop.
Save okash1n/44ccb0fb6795378cbcc96f07188549e3 to your computer and use it in GitHub Desktop.
Slackで誰かに送った自分のDMを全部消すやつ
'use strict';
function deleteDMsByChannelId() {
const token = 'slack_api_token'; // Slack APIのUserトークン(xoxp-)を設定
const channel_id = 'im_id'; // 削除するダイレクトメッセージのチャンネルID(DMの中のメッセージのリンクの「archive/****」の部分)を設定
const api_endpoint = 'https://slack.com/api/conversations.history?channel=' + channel_id;
// DMのメッセージ履歴を取得
const response = UrlFetchApp.fetch(api_endpoint, {
'headers': {
'Authorization': 'Bearer ' + token
}
});
const data = JSON.parse(response.getContentText());
const messages = data.messages;
// DM内の全ての自分が送ったメッセージを削除
for (let j = 0; j < messages.length; j++) {
const ts = messages[j].ts;
const api_endpoint = 'https://slack.com/api/chat.delete?channel=' + channel_id + '&ts=' + ts;
const response = UrlFetchApp.fetch(api_endpoint, {
'headers': {
'Authorization': 'Bearer ' + token
}
});
// APIのレート制限エラーを回避するためのウェイトを追加
Utilities.sleep(1000);
}
}
@okash1n
Copy link
Author

okash1n commented Feb 20, 2023

DMだけを消す場合Scopeは以下でOK
image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment