Help us understand the problem. What is going on with this article?

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

参考

ktanaka117
百合好きのダンボールの人です。 SwiftでiOSアプリを開発していて、最近のホットトピックはテスト、設計、リファクタリング。 Twitter: @ktanaka117
http://tanakalivesinsendai.hatenablog.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away