Gtk3アプリ NodeRedで仮想通貨を表示する その１

###Gtk3アプリ NodeRedで仮想通貨を表示する その１

####仮想通貨Binanceノードをインストール
https://flows.nodered.org/node/node-red-contrib-binance


node-red-contrib-binanceをインストールします。

```
node-red-contrib-binance
```

<img width="400" alt="Screenshot from 2021-10-29 13-08-27.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182324/50f6b601-6864-711f-b56c-bd65fb7390eb.png">

バイナンスのノードがインストールされると、バイナンスのノードが表示されます。

<img width="150" alt="Screenshot from 2021-10-29 14-10-53.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182324/1e504e7c-9257-9507-d031-c01c8f35f1a0.png">

####仮想通貨情報を取得する

バイナンスのノードを配置する
<img width="500" alt="Screenshot from 2021-10-29 13-09-55.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182324/d9afe9ce-a2d7-c37b-f86b-5d7b330be9d4.png">

```
[{"id":"6e098e8391b673d2","type":"tab","label":"フロー 2","disabled":false,"info":"","env":[]},{"id":"066ab8d228f7ee1f","type":"binance-get-price","z":"6e098e8391b673d2","name":"","ticker":"BNBBTC","x":360,"y":120,"wires":[["c6a7fc3f8a320dcf"]]},{"id":"463f13b6ad941696","type":"inject","z":"6e098e8391b673d2","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":150,"y":120,"wires":[["066ab8d228f7ee1f"]]},{"id":"c6a7fc3f8a320dcf","type":"debug","z":"6e098e8391b673d2","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":570,"y":120,"wires":[]}]
```
GetPriceノードのTickerPairにBNBBTCと記入
<img width="400" alt="Screenshot from 2021-10-29 13-43-18.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182324/32265807-122e-4d93-9fa6-3f09712df67f.png">

デプロイし、インジェクションから実行すると仮想通通貨の価格がとれます。
サンプルではBNB/BTCの価格になります。

<img width="400" alt="Screenshot from 2021-10-29 13-10-05.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182324/689728ab-4b3f-c9de-8e47-f75669c0f17e.png">

####仮想通貨を買うノード

バイナンスサイトでアクセストークンを発行します。
アクセストークンをCredentialsに追加します。
Ticker pairとprice とamountを記入し実行すると残高があれば通貨を購入できます。

<img width="500" alt="Screenshot from 2021-10-29 16-09-46.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182324/1e464b2e-8398-da12-108b-8925af9db15f.png">
####バイナンスのNodeを使った感想
バイナンスノードを追加しパラメーターを追加するだけでこんな簡単に実装できてしまいます。
アクセストークンをバイナンスサイトで発行しノードに追加すれば、それでけでMyPageの情報を取得できたり、通貨を買えます。
簡単な仮想通貨アプリならこれですぐに作れそうです。
APIプログラムでこれをやろうとするとAPIプログラムを理解しいろいろ試し時間がかかりました。プログラムが組み込まれたノードを使うと、とても早く開発できそうです。

####今後行いたい処理

####NodeRed側で行いたい 

| 処理| 理由 |詳細 |
|:-----------|:------------|:------------|
|  Web系APIノード      | APIプログラムを書かなくても、すぐに使える       | | 
|  センサー系APIノード    |  センサープログラムを書かなくても、すぐに使える       |   |      
|  Notifier系ノード    | Notifierのコードを書かなくても、すぐに使える          |        |
|  iOT部品系ノード    | 遷移図ように見れるように管理したい。   |        |
|  Webダッシュボード簡単なGui    | スマホから操作したい     |  | 


####C#側で行いたい
| 処理 | 理由 |詳細 |
|:-----------|:------------|:------------|
| データをDBに保存      |  C#の使い慣れたライブラリーがある                |Dapper Extension |
| MySqlを使う     | Sqliteではファイルロックがかかることを考慮して    |       |
| Modelを使いたい    |                  | |
| オリジナルDBアプリ     |  複雑なテーブル処理の時に作りたい　　    |datagridVIewを複数使う。|
| Riderの利用     |  複雑なプログラムをまとめておきたい     |  Riderは開発ツールが整っている     |
| Com系処理     | C#で書かれたCom系ライブラリーがある     |        |
| 複雑なWeb系API     | Api利用が本格的になってきた時    | NodeRedのノードは簡易版だったりする      |
| NodeRedの操作     | WebダッシュボードをWebViewに表示し起動したい    |       |
| クラウドとの接続     |     |  AWS  Azure     |

####バイナンスとは

世界最大の仮想通貨取引所です。
バイナンスノードを利用するにはユーザー登録する必要があります。

[バイナンスへ](https://www.binance.com/ja?ref=TK4QGRCX)
<a href="https://www.binance.com/ja?ref=TK4QGRCX" target="_blank"><img width="350" alt="" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182324/8960c90e-e297-5fe8-5896-ee00dad5b151.png" src="
https://www.binance.com/ja?ref=TK4QGRCX"></a>

[Gtk3アプリ NodeRedで仮想通貨を表示する その２](https://qiita.com/iota_11/items/6e67bd056e26f0a9e7f3)へ続く