13
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Slackの絵文字をimport/exportする方法

Last updated at Posted at 2019-02-26

概要

Slackのカスタム絵文字(emoji)にまつわる問題を解決します。

  • ある人が作った絵文字を一括ダウンロードしたい
  • 絵文字をまとめてアップロードしたい
  • あるワークスペースの絵文字を別の場所でも使いたい

背景

ある人の退職に伴い、絵文字の引継ぎをしたいと思ったのが背景です。
Slackのカスタム絵文字はアカウントと紐づいているため、それを作成したアカウントが退会するとただの文字として表示されるようになってしまいます。そこで絵文字をバックアップできるツールを探していました。しかし、"特定ユーザの作成した絵文字"ではなく、ワークスペースにある絵文字全部を取得してしまうツールがほとんどで、6000個余りのカスタム絵文字が存在する弊社では不要な絵文字が多すぎ、役に立ちませんでした。

そこで特定ユーザの作成した絵文字をバックアップできるツールであるemojmeを見つけたので紹介します。

emojme

何をするツール?

ユーザ別に絵文字を取得したり、取得した絵文字をアップロードしたりするツールです。

なぜ動くの?

Slackの公開APIである emoji.listではなく、非公開のAPIであるemoji.adminListを叩いて絵文字リストを取得するため、ユーザ別で取得できるようになっています。
したがって動作にはUser tokenが必須になっており、bot用のトークンでは動作しません。

動かし方

導入

npm install -g emojme

動作に必要なAPIトークンの取得方法(https://github.com/jackellenberger/emojme#slack-for-web)

${SUBDOMAIN}にSlackのワークスペースのサブドメイン名が入っているものとします。

  1. https://${SUBDOMAIN}.slack.com/messages にアクセスします。
  2. 右クリックして「検証」→上のタブの「Console」→下の文字列を入力しEnter
    window.prompt("your api token is: ",/api_token: "(.*)"/.exec(document.body.innerHTML)[1])
  3. APIトークンが表示されるので、これをコピーします。

ある人が作った絵文字を一括ダウンロードしたい

emojme download --subdomain $SUBDOMAIN --token $TOKEN --save $USER

  • $SUBDOMAIN: Slackのワークスペースのサブドメイン名
  • $TOKEN: APIトークン
  • $USER: ユーザのスクリーンネーム(@〜 ではなく表示される名前)
    カレントディレクトリ以下にbuild/$subdomain/$userというディレクトリが作られ、その中に絵文字がダウンロードされます。

絵文字をまとめてアップロードしたい

emojme add --subdomain $SUBDOMAIN --token $TOKEN --src $DIR

  • $SUBDOMAIN: Slackのワークスペースのサブドメイン名
  • $TOKEN: APIトークン
  • アップロードしたいディレクトリ名

これ以上の使い方についてはREADMEを参照してください。

13
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?