👤
Slackワークスペース内のユーザプロフィール画像をGoogleドライブに取得するGAS
概要
何やかんやあってユーザの画像が一括で欲しい時用のコード。
GASコード
前提として、ユーザプロフィールのURLがスプレッドシートに一覧になっているものとします。
Blob変換しているので処理は重めです。
function getSlackIconImg() {
const folderID = '*****' //保存先フォルダのID
const folder = DriveApp.getFolderById(folderID);
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('****');
const range = sheet.getRange('A2:A10');//スプレッドシートでユーザプロフィールURLが記載してある箇所
const targetURLs = range.getValues();
for (const url of targetURLs) {
const response = UrlFetchApp.fetch(url);
const getBlob = response.getBlob();
const targetBlob = getBlob.getAs('image/png');
folder.createFile(targetBlob);
}
}
curl
これでやってみたいんだけど、まだ使いこなせてない。
curl https://slack.com/api/users.list -d "token=$OAUTH_TOKEN" \
| jq -r '.members[] | select(.deleted == false) | select(.is_restricted == false) | select(.is_bot == false) | .profile.image_72, .name' \
| xargs -n 2 sh -c 'curl -L $0 -o $1.png'
memo
Discussion