JavaScript
Node.js
Slack

Slack EmojiをまとめてexportするスクリプトをNode.jsで書いて、Chrome Extensionでまとめてimportする

もう腐るほどやり方はネットに落ちている、Slack Emojiのexport&importネタです。
例えば新しいSlack Workspaceを作成したときなどに、その他に参加しているSlack Workspaceに登録されているEmojiを、そこでも使いたいときなどに便利です。

Slack Emojiをまとめてexportする

シンプルなスクリプトなので、Node.jsのバージョンなどの環境まわりの話は省略します。

Nodeのプロジェクトを作成する

適当なディレクトリを作成して、その中で npm init します。

# プロジェクトのルートディレクトリを作成する
$ mkdir SlackEmojiExporter
# プロジェクトのルートディレクトリに移動する
$ cd SlackEmojiExporter
# Nodeのプロジェクトを作成する
$ npm init

npmモジュールのインストール

以下の3つのモジュールをインストールします。

$ npm install --save slack-node
$ npm install --save request
$ npm install --save fs

APITokenを生成する

以下のリンク先でEmojiをexportしたいSlack WorkspaceのAPITokenを作成します。

Legacy tokens | Slack

Legacy_tokens___Slack_.png

スクリプトを書く

たとえば slack-emoji-exporter.js というファイルを作ります。

const Slack = require('slack-node');
const request = require('request');
const fs = require('fs');

apiToken = "<APIToken>"; // <- ここに生成したAPITokenを入力する
slack = new Slack(apiToken);

slack.api("emoji.list", function (err, response) {
    for(key in response.emoji){
        url = response.emoji[key];
        //エイリアスは無視
        if(url.match(/alias/)){
            continue;
        }
        request
        .get(url)
        .on('response', function (res) {
        })
        .pipe(fs.createWriteStream(key + '.png'));
    }
});

スクリプトを実行してEmojiを保存する

たとえば今のプロジェクトルートで先ほど書いたスクリプトを実行すると、直接画像ファイルが流れてきてしまうので、  images ディレクトリを作成してその中でスクリプトを実行します。

$ mkdir images
  • node_modules
  • package-lock.json
  • package.json
  • slack-emoji-exporter.js
  • images
$ cd images
$ node ../slack-emoji-exporter.js

すると、以下のように画像ファイルがダウンロードされるでしょう。
これでEmojiをまとめてexportできました。

スクリーンショット 2018-07-08 15.10.56.png

Slack Emojiをまとめてimportする

Chrome Extensionをインストールする

以下のChrome Extensionをインストールすると、SlackのEmoji追加するところにUIが追加され、ドラッグ&ドロップで画像をまとめてimportできるようになります。

Neutral Face Emoji Tools - Chrome ウェブストア

Emojiをまとめてimportする

以下の画像の手順で Customize Slack を開きます。

Slack_-_AKIBA_swift.png

するとEmojiを追加するウェブが開くので、そこのBulk Emoji Uploaderにドラッグ&ドロップで画像ファイルをまとめて複数登録することができます。

スクリーンショット 2018-07-08 15.17.24.png

参考