【Slack】レガシーテストトークンを使わずに絵文字を一括でエクスポートする
はじめに(対処した問題)
Slackの新しいワークスペースを作成するに伴い,現在使用しているワークスペースから絵文字を一括でエクスポート&インポートしようと企てていました.
参考サイトを基にエクスポートしようとしたら,Slackのトークン作成のところで躓きました.
参考にさせていただいたサイト↓
Slackの絵文字(emoji)を一括エクスポート&インポートする
というのも,今まで紹介されているエクスポート方法ではSlackのレガシートークンが使われているものが主でした.
しかし,2020/5/5にレガシーテストトークンが作れなくなりました.(すでに作成されているレガシートークンは使用&再生成できますが,新規作成ができないようになっています.)
The creation of legacy test tokens is deprecated
We're deprecating legacy test tokens and will disallow the creation of new test tokens beginning May 5th, 2020.
2020/5/13現在のSlackで新しいトークンを使用するにはSlackアプリを作成するようにと記述されています.
API トークンの生成と再生成
注意 :レガシーテストトークンを新しく作成することはできなくなりました。Slack API を操作するために新しいトークンが必要な場合は、代わりに Slack アプリを作成してください。
今回はレガシートークンで今まで絵文字をエクスポートしていたものを上記に紹介したSlackアプリで代替することで実現していきます.
手順(一括でエクスポートする)
基本的にはレガシートークンを使用してエクスポートする手順と同様のため,先程も紹介させて頂いた記事(Slackの絵文字(emoji)を一括エクスポート&インポートする)に沿って進めていきます.
- Node.jsをインストールする
- 必要なモジュールをインストールする
- エクスポート元のSlackチームのAPIトークンを取得する(←ここが変わる)
- スクリプトファイルを作成する
- スクリプトファイルを実行する
1. Node.jsをインストールする
ターミナルでnode -v
を打つことで確認できます.
> node -v
インストールされていればバージョンが表示されます(筆者はv12.16.3).
インストールされてない場合は以下のような記事を参考にインストールしてください.
windows10にNode.jsをインストールする
MacにNode.jsをインストール
2. 必要なモジュールをインストールする
今回使用するモジュールをインストールします.
> npm install slack-node
> npm install request
> npm install fs
3. エクスポート元のSlackチームのAPIトークンを取得する(←ここが変わる)
ここまでは筆者も順調に進んでいましたが,参考記事にあるようなレガシートークンを発行できないところで詰みました.
そこで今回はSlackアプリを作成することで乗り越えます(他にも良い方法があるかもしれません.)
Slack APIにアクセスし,右上の「Your Apps」をクリックする.
「Create New App」をクリックして,「App Name」に適当なアプリ名(例:import-emoji)を入れて,「Development Slack Workspace」にエクスポートしたいワークスペースを選択する(ここでエクスポートしたいチャンネルが出ない場合はログインが必要).
作成したらページが遷移するので「Permission」をクリック.
「Scopes」の「User Token Scopes」の下にある「Add an OAuth Scope」をクリックし,「emoji:read」を選択する("emoji"と入力すると候補で上位に出てくる).
選択すると下図の状態になる.
ページの上部に進むと先程までグレーでクリックすることができなかった「Install App to Workspace」が緑色になり,インストール可能となっているため,クリックしてインストールする.
(※ここで無料のワークスペースの場合は10個アプリを連携しているとエラーになってしまうので注意)
作成を許可するとトークンが発行されるのでこちらを次の作業のためにコピーして用意しておく.
これでレガシートークンの代わりとなるトークン作成が終わりました.
4. スクリプトファイルを作成する
VSCodeなどのエディターツールで以下のコードをコピー&ペーストする.(ここは下記サイトにある@kureさんや@ne-peerさんの記事にあるコードを拝借致します.)
参考にさせて頂いたサイト
Slackのカスタム絵文字を全てダウンロードする
Slackの絵文字(emoji)を一括エクスポート&インポートする
ファイル名は自分が認識できれば何でもOKです.(下記のファイル名は例)
var Slack = require('slack-node');
var request = require('request');
var fs = require('fs');
apiToken = "<apitoken>"; // ここにAPIトークンを貼り付ける。
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;
}
// 取得対象の拡張子
extention = url.match(/\.[^\.]+$/);
request
.get(url)
.on('response', function (res) {
})
.pipe(fs.createWriteStream('image/' + key + extention));
}
});
上記コードにある// ここにAPIトークンを貼り付ける
の行にある"<apitoken>"
の部分に先程コピーして用意していたトークンを貼り付ける("xoxp-00000~"という形になればOK).
5. ディレクトリを作成し,スクリプトファイルを実行する
スクリプトファイルを作成&保存した階層と同階層にimage
というディレクトリを作成する.(これをしないとエラー発生)
ディレクトリ作成後,以下のコマンドを入力することでエクスポートが完了する(imageディレクトリにすべての絵文字が保存されます).
【補足】一括インポート
筆者が確認時点(2020/5/13)では,一括インポートは従来どおりの方法で可能なことが確認できています.
従来どおりの方法
Chomeの拡張機能をインストール
Neutral Face Emoji Tools
上記ツールをインストール後,
Slackで「ワークスペースをカスタマイズ」の「絵文字」のタブに行くとドラック&ドロップで一括で絵文字をインポートできます.
筆者がインポートに使用しようとしたときには上の画像のように拡張ツールのインポート画面が出てこなくて非常に焦りましたが,適当なカスタム絵文字を1つ追加するだけで上記のような画面が出てきます.
おわりに
これで今まで通りSlackのカスタム絵文字を簡単に移行させて使い倒していきましょう.
参考サイト一覧
Slackの絵文字(emoji)を一括エクスポート&インポートする
The creation of legacy test tokens is deprecated
windows10にNode.jsをインストールする
MacにNode.jsをインストール
Slack API
Slackのカスタム絵文字を全てダウンロードする
おすすめの記事
Author And Source
この問題について(【Slack】レガシーテストトークンを使わずに絵文字を一括でエクスポートする), 我々は、より多くの情報をここで見つけました https://qiita.com/wataruxun/items/28ad1e99b7e0794d7130著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .