Slackに大量の絵文字をコマンドラインで登録する方法

シンジです。Slackに絵文字を登録する方法に、Google Chromeの拡張機能でBulk Emoji Uploaderを利用すると便利なのですが、登録したい絵文字の数が数百とか数千数万になると超大変です。そんなに手元に絵文字画像ないよって話ですが、デコモジという公開絵文字が3万近くあるので、これを登録してみます。

注意

  • いきなりSlackテナントに3万件近い絵文字が増えるとパニックになる人もいるかもしれません。画像選別しても良いと思います。
  • SlackAPIを利用してアップロードするので、1画像ファイルを1つずつ丁寧に気持ちを込めてアップロードします。都合、17時間くらいかかります。

デコモジという努力の結晶

ここの画像を絵文字として登録します。ありがたやありがたや。

デコモジのアップローダを使わない理由

デコモジには一括登録用の機能が用意されていますが、ウチみたいなGRID環境ではトークンを利用しなければならなかったり、テスト環境でやってみたものの途中で止まる問題があったりで、直すのが面倒だったので別の方法を紹介します。

デコモジをダウンロードする

decomojiのWebサイトから絵文字画像データをダウンロードするか、Macのローカルにデコモジをクローンします。

git clone https://github.com/decomoji/decomoji.git

decomojiフォルダの中に絵文字画像ファイルが大量に入っています。

フォルダ分けする

さすがに万単位を一括で処理できなかったので、フォルダをいくつか作って、数千ファイルごとに分割します。01フォルダに8000個、02フォルダに8000個みたいにしました。くやしい。

アップロード準備

slack-emoji-uploadを使います。バイナリがあるので、ダウンロードしちゃいましょう。

今回はslack-emoji-upload_1.3.2_osx_x86_64.zipを利用しました

Macの環境にgoが入っていない場合は、入れます。

brew install go

Macの環境にbrewが入っていない場合は、先にbrewを入れます。

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

オススメしないけどやらないとできないのでやるやつ

このままアップローダーのバイナリを起動しようとしても、開発元がうんたらで起動しません。なのでいったんこの機能をオフります。

sudo spctl --master-disable

終わったら戻しておきましょう。

sudo spctl --master-enable

Slackの絵文字登録用APIトークンを取得する

Slackの絵文字登録画面をChromeで開きます。下記リンクで飛べます。

Chromeのデベロッパーツールを開いて、ターミナルに下記コマンドを入力するとトークンが表示されます。

window.prompt("your api token is: ", TS.boot_data.api_token)

xoxs-agraermaoerknagapoergmakernlkgalngaeraklwenrlawne みたいなのがトークンです。これを使います。

アップロードする

ダウンロードしたバイナリに引数でテナント名とトークンを渡してあげれば開始です。一番最初は動作がうまくいくか確認する為に、1つの画像だけをアップロードして完了させてみましょう。エラーメッセージが最後にでるので、いきなり大量に処理すると、うまくいってるのかわかりずらいです。

./slack-emoji-upload -team ここにSlackのテナント名 -token "xoxs-mgrknae...." decomoji/01/.*.

あとはひたすら待つだけです。同じファイル名、絵文字名があった場合はスキップされます。

登録完了。自動アップロードも作れそうです

Slackの特定のチャンネルに画像をアップロードすると、自動で絵文字として登録してくれるとか、Boxのここに入れると登録してくれるとか、なんだかいろいろ作れそうです。

大量に絵文字を登録すると重くなるという話もありましたが、登録するだけで重さを感じたことはありません。

皆様も素敵なSlack絵文字ライフを。

Category