NEMの入出金を通知するSkypeのBotを作ったので試験公開
NEMのWebSocketがいろいろ面白く、利用価値がありそうだったのでトランザクションを監視する Skype の Bot を作ってみました。
XEMやモザイクの入出金が発生すると、Bot から通知が飛んできます。
また、アドレスの残高の確認をすることもできます。意外と少ない、スマホ端末でのモザイク残高確認手段にもなります。
まだまだ動き出したばかりですが、一度試験公開してみようかと思います。
開発中のため頻繁に更新したりサーバ落ちたりする可能性ありますが、試してみたい方いらっしゃいましたら是非使ってみてください。
技術面での今回の Bot の作成の主目的は、「nem-kotlin をサーバサイドで動かしたい、WebSocket 使ってみたい」というところが主な動機です。
今回は技術的な面を控えめで書いてます。使ってる技術とかについては別で記事書こうかと思います。
2018.04.26追記
Discord版を作ったんですが、そちらのほうが使い勝手が良かったのでそちらをメインに動かすことにしました。
現在Skype版は動かしてませんので、使ってみたい方はDiscord版をお試しください。
2018.04.26追記ここまで
簡単な使い方
1. Bot の登録
↑のリンクを Skype のアプリが入っているPC、スマホでクリックしてください。
開いた画面で「Add to Contacts」というボタンを押すと、Skype の連絡先に「NEM-push」という Bot が追加され、Bot との会話が始まります。
最初に使い方のメッセージが Bot から流れてくるはずです。
2. アドレスの登録
Bot に対してadd NEMのアドレス 名前
という形式で発言してみてください。名前は自分がわかれば何でも良いです。日本語でも OK。
addとNEMのアドレスの間は半角スペースです。
アドレス登録に成功すると、Bot から 「アドレスを登録しました」というメッセージがあります。
以降、そのアドレスで XEM、モザイク入出金があれば Bot から通知が飛んできます。
- アドレスはテストネット、メインネットどちらでも対応してます。
-
アドレスは複数登録できます。
3. 残高確認
balance
と発言すると、登録してあるアドレスの XEM、モザイクの残高を表示します。
詳細な使い方
使えるコマンド
add
、balance
などと同じように使えるコマンドの一覧。各コマンド、先頭の頭文字を短縮名として使うことができます。
例えばb
だけ入力すれば balance
と解釈します
コマンド名 | 形式 | 短縮名 |
---|---|---|
登録 | add アドレス (名前) | a |
登録解除 | remove アドレス | r |
残高確認 | balance | b |
登録一覧 | list | l |
その他、上記コマンドに当てはまらない発言を行うと使い方メッセージが表示されます。
add
の名前は無くても一応動作しますが、複数登録できるため、適当な前でもつけておいたほうが良いかと思います。
問い合わせ先
Twitter
@ryuta461
何か問題とか、こんなの欲しいとかあれば言っていただければとてもありがたいです。
自発的にメンテする時はTwitterで #nempushbot で連絡してからサーバを落とすつもりです。
なんの前触れもなく、b
とか l
とか発言しても反応がない場合は知らないところでサーバが逝ってる可能性があります。
そっと教えてください。
注意点
Bot の登録に関して
試験公開段階のため、Skype の ID で検索して登録するということができず、上記リンクからの登録が必要になっています。
たぶんそこまで行かないと思いますが、一応登録人数にも上限があります。
もし反響があれば、Microsoft の審査を通して一般的に使えるようにしようかと考えています。
通知がこないんだけど?
すみません。
Twitter とかで教えていただけるとうれしいです。
一応エラー時のリカバリ処理なども入れていますが、試行回数も少なく、まだまだ全然作り込めていないので、特にWebSocketからのリアルタイム通知は取りこぼす可能性はあります。
送金の対応など
秘密鍵の管理をしていないので、できませんし、たぶん対応しないです。
ウォレットとはまた違う方向性で考えています。
逆に秘密鍵を知らないので、この Bot を使ったところで XEM が減ったりするということはありません。
その代わり、入出金の動きを手軽に、リアルタイムにウォッチするということを目的としていて、複数アドレスを登録できるようにしたのもそのためです。
今後の対応予定
通知チャンネルの追加
今回の Bot を作った環境は、MicrosoftBotFramework というものを使っています。
初めて使ったのですが、かなり面白くて、同じサーバで Skype の Bot 以外も簡単に作れます。
Slack とかも、Web上で登録操作をすれば割と簡単に登録できたので、「このアプリでも通知送ってほしい!」というのがあれば対応検討します。
MicrosoftBotFramework すごいっす。おもしろいっす。同じバックエンドで Slack の方にも通知投げれる。 pic.twitter.com/Rv81smhzaY
— りゅーた@田舎フリーランス (@ryuta461) November 29, 2017
Microsoft Bot Framework で対応できるものとしては、以下のものがあるようです。
- Skype
- Skype for business
- Slack
- Bing
- Cortana
- Direct Line
- Facebook Messenger
- GroupMe
- Kik
- Microsoft Teams
- Telegram
- Twillio(SMS)
Cortanaとかどうすんだとか気になります。
ハーベストの通知
面白そうなのでやってみたいです。
ちなみにTelegram に関してはすでにさくたろうさんの Telegram用のBot があります。
#NemHarvestMonitor
NEMがハーベストされた時に通知を行うTelegram用Botです。
ハーベスターの方よろしければどうぞ。https://t.co/MvXXIkxgbY— さくたろう (@Up_Income) November 12, 2017
さいごに
nem-kotlin、サーバ環境でも動いたよ。まだまだブラッシュアップは必要そうですが。
それにしても、NEMは本当にブロックチェーンが刻んだ情報に、簡単にアクセスできる。
しかもWebSocket 使うと、リアルタイムにアクセスできる。
まだまだいろいろいじって遊べそうです。
最後まで読んでいただきありがとうございます。 このブログを「いいな」と感じていただけましたら、Twiter にてフォローいただけるとうれしいです。ブログ更新情報などもお届けします。
Follow @ryuta461
この記事をシェアする