<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
</head>
<body>
<style type="text/css" media="screen">
#wrapeer {
width: 1000px;
margin: 0 auto;
}
#linkToToken {
display: block;
padding: 10px;
}
input[type=password] {
font-size: 120%;
display: block;
padding: 10px;
width: 840px;
float: left;
}
#downloadBtn {
border: 1px solid #ccc;
padding: 10px;
border-radius: 5px;
float: right;
}
#downloadBtn:hover {
background: skyblue;
}
</style>
<div id="wrapeer">
<a id="linkToToken" href="https://api.slack.com/docs/oauth-test-tokens" target="_blank">Tokenを確認</a>
<input type="password" id="token" placeholder="↑のページに記載されている”Token”をコピペし、ダウンロードボタンを押してください">
<a type="button" id="downloadBtn" style="">ダウンロード</a>
</div>
<script type="text/javascript">
<!--
$(document).ready(function() {
$('#token').change(function(event) {
getUserMap(getToken(), getCsvOfGroupList)
});
var getToken = function() {
return $('#token').val()
}
var getUserMap = function(token, successCollback) {
$.ajax({
url: 'https://slack.com/api/users.list?token=' + token,
type: 'GET',
dataType: 'json',
})
.done(function(result) {
var usernameMap = []
for (var i = 0, len = result.members.length; i < len; i++) {
usernameMap[result.members[i].id] = result.members[i].name
}
successCollback(usernameMap, token)
}).fail(function() {})
}
var getCsvOfGroupList = function(usernameMap, token) {
$.ajax({
url: 'https://slack.com/api/groups.list?token=' + token,
type: 'GET',
dataType: 'json',
})
.done(function(result) {
var csv = [
'公開/非公開',
'チャンネル名',
'作成者',
'メンバー数',
'目的',
].join(',') + "\n"
for (var i = 0, len = result.groups.length; i < len; i++) {
var group = result.groups[i]
// 複数人でのDirectMessageと、アーカイブ済みのものは除外する
if (group.name.indexOf('mpdm-') === 0 || group.is_archived) {
continue;
}
var groupInfo = [
'非公開',
group.name,
usernameMap[group.creator],
group.members.length,
group.purpose.value,
]
csv += groupInfo.join(",") + "\n"
}
setDownloadLink(csv)
}).fail(function() {})
}
var setDownloadLink = function(csvString) {
var bom = new Uint8Array([0xEF, 0xBB, 0xBF]);
var blob = new Blob([bom, csvString], {
"type": "text/csv"
});
if (window.navigator.msSaveBlob) {
window.navigator.msSaveBlob(blob, "test.csv");
// msSaveOrOpenBlobの場合はファイルを保存せずに開ける
window.navigator.msSaveOrOpenBlob(blob, "test.csv");
} else {
document.getElementById("downloadBtn").href = window.URL.createObjectURL(blob);
}
}
})
-->
</script>
</body>
</html>