システム概要
本システムの概要を紹介します。システム概要は図2の通りです。
図2の(1)LINE Botでは、価格を知りたい仮想通貨の入力と調べた結果の表示を行います。図2の(2)ではLINE Botからのリクエストを受けて、CoinMarketCAP APIにリクエストを送信します。リクエストの返答で得た価格情報を固定のテキスト形式に整え、LINE Botに通知します。
LINE Botを作成
LINE Botの作成はLINE Developersのサイトから行います。LINE Botの作成方法は、LINE Developersのドキュメントをご参照ください。本システムのLINE Bot設定を次の表1に示します。
| 大項目 | 小項目 | 設定内容 |
|---|---|---|
| 基本設定 | チャンネルシークレット | 発行 |
| Messaging API | Webhookの利用 | ON |
| Webhook URL | enebular上のNode-RED URL | |
| グループ・複数人チャットへの参加 | 無効 | |
| 応答メッセージ | 無効 | |
| 挨拶メッセージ | 有効 | |
| チャンネルアクセストークン | 発行 |
仮想通貨の情報を取得
仮想通貨の情報取得はCoinMarket CAP APIを利用します。このAPIは、仮想通貨の取引高や現在の価格、各取引所の価格などのさまざまな情報を取得可能なAPIです。CoinMarket CAP APIの使い方はこちらの記事にまとめました。本システムで動作するNode-REDのフロー(処理)を次の図3に示します。
本フローでは次の処理を行っています。
- LINE Botからのアクセス受付
- LINE Botから送られてきたデータの解析(BTCなどの仮想通貨名を抜き出す)
- CoinMarket CAP APIにリクエストを送信
- 取得した価格情報を定型文に埋め込む
- 価格情報をLINE Botに通知する
参考に本システムのNode-REDフローをGithubで公開しています。ご興味のある方は次のサイトからフローのJSONファイルを入手可能です。Node-REDにインポートすることで内容を確認することができます。
苦労したところ
プロトタイピングの中で最も苦労したのは、Node-REDでCoinMarket CAP APIから価格情報を取得する処理でした。
CoinMarket CAP APIから得た仮想通貨の価格情報はJSON形式のデータです。その中にある価格情報を参照するためのキーが動的に変わります。そのため、少々プログラミングの知識が必要となりました。
動かしてみないと分からない問題で何度もトライ&エラーを繰り返す必要がありました。Node-REDはフローベースのプロトタイピングツールで、Nodeと呼ぶ処理ブロックをつなげてシステム化します。ノード単位で処理が分かれているため、エラー箇所の特定が容易でした。これによりトライ&エラーのサイクルを早く回すことができ、プロトタイピングの時間を短縮できました。
おわりに
今回プロトタイピングを行ったLINE Botを何度か使ってみたところ、瞬時に価格の把握を行うことで急激な高騰や下落を察知することができました。デメリットとしては、価格の動きが上昇なのか下落の傾向なのか分かりづらい点でした。
今回のプロトタイピングを通し、ローコードに開発を進めることはトライ&エラーのサイクルを速く回すことができ、問題の早期発見とモチベーションを保ちながら進めることができました。使用したローコードツールのNode-REDは2年近く愛用しており、さまざまなサービスと連携したシステム開発を容易にする目的で使用しています。プロトタイピングで用いられるRaspberry Pi上で動作するので、環境モニタリングや画像認識による動体検出など広く使用することが可能です。
本記事を通してプロトタイピングにご興味を持っていただき、ローコードツールを触るきっかけになると幸いです。
この記事は参考になりましたか?
既に会員の方はを行ってください。
- 自分自身で課題を解決するDX事例紹介連載記事一覧
-
- 作図って大変? AWSシステム構成図生成アプリで作図作業を効率化しよう
- ローコードに仮想通貨の価格通知LINE Botをプロトタイピングしよう
- 新人教育で勤怠管理botを育てよう!~IT初心者の体験記~
- この記事の著者
-
プロトアウトスタジオ3期生 まえぷー(マエプー)
普段は組み込みソフトのエンジニア。2020年頃からIoTプロトタイピングに興味を持ち、プロトアウトスタジオに入学。Web系の技術だけではなく、アウトプットすることの大切さを学び、卒業後も技術記事の執筆やLTに参加。仕事でもIoT案件に携わることが増える。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
