Slack의 개인 채널의 Export
2308 단어 SlackGASexportSpreadsheettech
TL;DR
여기와 여기 정보를 참고하십시오. 백업은 단서에 포함된 정보를 포함합니다.
이전 링크를 참조하여 Slack App을 설정하고 다음 코드를 스프레드시트의 스크립트 편집기에 복사하면 됩니다.
var OAuthAccessToken = "{OAuth Access Token}";
var channelID = "{チャンネルID}";
function main() {
var fetchUrl = 'https://slack.com/api/conversations.history?token=' + OAuthAccessToken + '&channel=' + channelID + '&limit=1000';
var res = UrlFetchApp.fetch(fetchUrl);
res = JSON.parse(res);
var messages = [];
do {
var newMessages = [];
res.messages.forEach(function (v) {
if('thread_ts' in v) {
var fetchUrl = 'https://slack.com/api/conversations.replies?token=' + OAuthAccessToken + '&channel=' + channelID + '&ts=' + v.thread_ts;
var reply = UrlFetchApp.fetch(fetchUrl);
reply = JSON.parse(reply);
newMessages = newMessages.concat(reply.messages.reverse());
}
else {
newMessages.push(v);
}
});
newMessages = newMessages.map(function (v) {
return [
v.client_msg_id,
v.type,
v.text,
v.user,
v.ts,
v.reply_count || 0,
v.reply_users_count || 0,
];
});
messages = messages.concat(newMessages);
} while (res.has_more);
SpreadsheetApp
.getActiveSheet()
.getRange('A2:G' + (messages.length+1))
.setValues(messages.reverse());
}
배경.
어떤 슬랙 채널의 정보를 백업(내보내기)하고 싶은 장면이 있어요.
이러한 상황 때문에 Slack이 준비하는 방법은 백업할 수 없습니다.
해본 일
처음에는 거의 다 썼지만 ynaito의 글을 참고해 정보를 얻었는데 결과적으로 단서를 얻지 못한 내용이 있어 yomori의 글을 참고해 그 부분을 추가했다.
진짜 이게 다야.
내가 뭘 했더라면
conversations.history
시간순으로 내림차conversations.replies
승차순으로 돌아왔기 때문에 전체적으로 승차순으로 씹기 위해reverse()
네.
Reference
이 문제에 관하여(Slack의 개인 채널의 Export), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/nariakiiwatani/articles/8ed4a7bb0d5d0b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)