先日たまたまこのようなツイートを見つけました。
TipSLACK公開しました。日本のIT開発主要企業700社以上で採用されているSlackでNEMを投げ銭するためのライブラリです。https://t.co/Yzjj01jEFc
— XEMBook@暗号資産NEM (@xembook)
2018年7月17日 なになに、SlackでNEMの投げ銭ができるですと・・。このライブラリを導入すればSlackを使っている企業ではすぐ社内通貨が実現できちゃいますね。素晴らしい。
普段Slackを利用している。かつNEMberとして黙って見過ごすわけにはいきません。ということで、早速試してみた。
おかしい。今日はSolidityの学習をするはずが体が勝手にTipSlackを試そうとしている・・・。
— まつしん@Railsプログラマ (@matsushin11)
無事ローカル環境でTipSlack使ってSlackからXEMの送金ができた!! あとで利用開始までの流れをブログに書こう。そのあとHerokuとか使ってチームで利用できるところまで試しておきたい。 機能的には残高確認はできないのかな???保有しているモザイクを見たいところ。#NEM #XEM #TipSlack pic.twitter.com/OgD5VeMbri
— まつしん@Railsプログラマ (@matsushin11)
2018年8月11日 無事設定完了して送金に成功!!!
利用するまでの準備は難しくはないのですが、色々手順があるためまとめてみようと思います。この記事を参考にしながらさくっと導入を試してもらえると幸いです。
ちなみに社内通貨とするには100XEMを支払ってモザイクを発行する必要がありますが、2018年8月12日現在ではXEMの価格がかなり下がっているので今がチャンスです。
[relationId postid=254 head=”あわせて読みたい”]Contents
TipSLACKとは
TipSlackとはXEMBookを作りました @xembookさんが開発したライブラリになります。
できることとしては、Slack上でコマンドを叩くことによってXEM、モザイク(独自通貨)の送金ができます。残高の確認はできません。
もしかしたら追って機能は他にも追加されていくかもしれません。
手順の前提条件
こちらは手順を確認する際の前提条件になります。条件を満たしていない場合はslack、node.js、NanoWalletそれぞれ一度使ってみることをオススメします。
- slackを一通り使ったことがある
- node.jsのコードを実行したことがある
- NanoWalletの利用したことがある
動作環境
動作させた環境は以下になります。
- Mac OS High Sierra v10.13.5
- node v10.0.0
それでは早速見ていきましょう。
TipSlackを利用する準備をする
以下の流れで進めていきます。
1. ngrokをインストール・起動する
ngrokを使うことによってnodeでローカルサーバを起動した際に、グルーバルなURLでアクセスできるように準備をしておきます。
まずはインストール。
1 |
$ npm install ngrok |
インストールしたら起動させましょう。今回はポート番号は1337を利用します。
1 |
$ ngrok http 1337 |
このような表示がされればOK。URLが発行されました。
このURLは次の手順で利用します。
「Ctrl + C」で停止させれますが、再度起動させるとURLが変更することにご注意ください。
2. SlackにSlash Commandsをインストールする
Slack上で「/command hogehoge」のように打ち込むと特定の動きをするようにします。「/command」 の文字列の部分でフックさせてプログラムを実行するようにします。
では、まずはSlash Commandsをインストールして設定いきましょう。
「https://[使えるようにしたいワークスペース].slack.com/apps/manage」にアクセスして「Slash Commands」と入力して検索しましょう。
「設定を追加」で次へ。
「/tipslack」と入力して次へ。入力した文字がSlackで入力するコマンドとなります。
連携が完了後に設定を追加します。
画面少し下の「Integration Settiongs」のエリアにて「URL」を入力してください。
1.の手順で入手したURLの後に「/tipslack」を追加して入力。「トークン」は4の手順で利用します。
入力が完了したら、「インテグレーションの保存」でSlash Commandsの設定完了!
3. 着信Webフックの設定を追加する
次に「着信Webフック」の設定をしていきましょう。設定が完了すると「Webhook URL」が発行されます。
Weghook URLによってローカルでプログラム実行時にどのチャンネルに通知をするかの指定ができます。
「https://[使えるようにしたいワークスペース].slack.com/apps/manage」にアクセスして「web」と入力して検索しましょう。
「設定を追加」で次へ。
TipSLACKを利用したいSlackのチャンネルを選択してください。
連携が完了しました。画面下に表示されている「Webhook URL」は4の手順で利用します。
以上で着信Webフックの設定は終わりです。
次にコマンドが叩かれた際に実行されるコードを実装しましょう!
4. TipSlackのコードファイルを取得する
それでは肝心のTipSLACKのコードを入手しましょう。Slack上で叩かれたコマンドによって実行されるコードになります。
1 2 |
$ git clone git@github.com:mediaprogramer/tipslack.git $ cd tipslack |
ダウンロードできたらtipslack.jsの設定部分のコードを書き換えていきます。
1 2 3 4 |
const SYSTEM_PRIVATE_KEY = "8b42 fb53 b19b 9793 a55b 0c87 8b12 6bee c3d7 73f2 1b9a ac7d 9fd6 7197 1ee9 b546"; // 4文字16単語の形式は崩さずにランダムで半角英数を入力 const SLACK_HOOK_URL = "https://hooks.slack.com/services/XXXXXXXXX/YYYYYYYYY/ZZZZZZZZZZZZZZZZZZZZZZZZ"; // 3の手順で入手したWebhook URL を入力 const SLACK_TOKEN = "XXXXXXXXXXXXXXXXXXXXXXX"; // 2の手順で入手したトークンを入力 |
43行目に記述された利用環境をメインネットから、テストネットに変更。まず試してみるにはテストネットに切り替えるのが無難でしょう。
1 |
nemlibrary.NEMLibrary.bootstrap(NetworkTypes.TEST_NET); |
コードを変更し終えたら、必要なライブラリを適宜インストールしましょう
1 |
$ npm install log4js nem-library rxjs rxjs-compat express body-parser request |
TipSLACKではJavaScriptで書かれたNEMのAPIを利用したライブラリであるNEM Libraryを利用しているようですね。
[relationId postid=1081,955 head=”あわせて読みたい”]5. サーバーを起動する
それではサーバを起動してコードが実行できるようにしましょう!
1 |
$ node tipslack.js |
下記のようなログが表示されれば起動完了!
お疲れ様でした!これでやっと準備は完了です。次から実際にコマンドを叩いて動作確認をしていきましょう。
動作を確認する
3の手順で設定したSlackのチャンネルで「/tipslack deposit」と入力。
TipSLACK用のアドレスが発行されたらOK!
さて、ついに送金です。テストネットのXEMがないとかであれば下記記事を参考に準備後に先ほど発行したTipSLACK用のアドレスにNanoWalletから送金してください。
xemでの投げ銭は「/tipslack withdraw 送金先アドレス 送金量 xem」と入力。
SUCCESSと通知されれば完了!!NanoWallet側でも着金したことを確認できるかと思います。
モザイク(独自通貨)を投げ銭したい場合は「/tipslack tip 送金先アドレス 送金量 ネームスペース名:モザイク名」のコマンドでできます。
今回は試しでngrokを使っているので、同じSlackのワークスペース内のユーザは誰でも同様にコマンドを利用できます。
ただし、ローカルでngrokで起動したままにしておくのは不便です。本格的に運用する場合はHeroku等のサービスにてtipslack.jsをデプロイして稼働させてください。
所感
今やSlackを利用しているユーザはエンジニアを中心に非エンジニアまで広がりを見せています。なのでSlack上で投げ銭ができるというのはとても可能性を感じましたし面白いです。ライブラリを開発して下さった@xembookさんに感謝です。
贅沢を言うなら機能的にはやはり残高の確認までできれば嬉しい。現状TipSLACKで発行したアドレスの残高を確認する方法がありませんので、そこができるようになると使い勝手がぐっと上がる感じがしています。
興味を持ったエンジニアの方が社内通貨として導入して、社内の人は知らずにNEMを使っている。という状態が広がっていけば嬉しいですね〜。
コメントを残す