슬랙의 정보를 모두 삭제하고 마지막으로 어떻게 해야 할까!
개시하다
エンジニアができそうなこと
모두 제 임무입니다. 저는 여러분에게 익숙한 돼지입니다.아래의 경과가 있으면 채널 내의 모든 소식을 삭제해야 한다.
Slackを有料化
-> 過去データが見れるようになった
-> Slack利用開始時はデフォルトchannelに機密情報バンバン流してた
-> 最近参画した新人に過去の機密情報見せたくない
-> デフォルトchannelなのでプライベートにできない&消せない
-> 社長)メッセージ全部消しといて〜
-> 猪俣)・・・うす。。
구글이'슬랙API와 GAS로 삭제하면 된다'는 기사를 대량으로 생산해 보았지만 조금 낡아서 한꺼번에 예쁘게 돌아가는 물건이 없었다."막무가내! 도대체 어떻게 해야 돼!"그래서 분노를 원동력으로 기사를 쓴다.
Slack 정보를 대량 삭제하는 방법(2021/11/9 기준)
Slack 작업공간 설정
・자신의 작업공간에 관리자 권한을 부여한다(권한이 없으면 타인의 정보를 삭제할 수 없다)
• 채널 ID 획득
SlackAPI 설정
• 제작 애플리케이션
Create New Apps 버튼을 누릅니다.
• 애플리케이션의 Manifest 편집
다음 내용으로 개작하다.(oauth config에 이번에 사용할 권한이 추가됨)
_metadata:
major_version: 1
minor_version: 1
display_information:
name: Demo App
oauth_config:
scopes:
user:
- chat:write
- files:write
- channels:history
- groups:history
- im:history
- mpim:history
settings:
org_deploy_enabled: false
socket_mode_enabled: false
token_rotation_enabled: false
/애플리케이션 설치OAuth & Permissions의 Install to Workspace를 누릅니다.
-> User OAuth Token을 표시합니다.
・Token의 복사본
설치 후 표시된 User OAuth Token을 복제합니다.
GAS 소스 코드
· 앱스크립트 열기
• 소스 코드 쓰기
다음 내용을 복사합니다.(token과 channel id는 자신의 것을 설정했다)
function del_slack_posts() {
var token = "xxxxxxxxxx";
var channel_id = "xxxxxxxxxx";
// チャンネル内からタイムスタンプの一覧を取得
var url = "https://slack.com/api/conversations.history?token=" + token + "&channel=" + channel_id;
var response = UrlFetchApp.fetch(url);
var json = response.getContentText();
var data = JSON.parse(json);
for (var i=0; i<data.messages.length; i++) {
var url = "https://slack.com/api/chat.delete?token=" + token + "&channel=" + channel_id + "&ts=" + data.messages[i]["ts"];
UrlFetchApp.fetch(url);
}
}
、실행 버튼을 누르다※ 단서에 포함된 정보는 삭제되지 않습니다.
data.messages[i]["ts"]
가 data.messages[i]["latest_reply"]
로 변경되면 삭제됩니다.최신 정보만 삭제하기 때문에 여러 번 실행해야 한다.
Reference
이 문제에 관하여(슬랙의 정보를 모두 삭제하고 마지막으로 어떻게 해야 할까!), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/takahiro301/articles/b1d75f458fbb26텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)