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

More than 1 year has passed since last update.

もう腐るほどやり方はネットに落ちている、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


参考