👤

Slackワークスペース内のユーザプロフィール画像をGoogleドライブに取得するGAS

2022/09/04に公開

概要

何やかんやあってユーザの画像が一括で欲しい時用のコード。

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

これでやってみたいんだけど、まだ使いこなせてない。
https://qiita.com/shinichinomura/items/def949e1cbe80c2f695c

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
https://blog.serverworks.co.jp/slack-api-curl

Discussion