LINE notifyで仮想通貨の価格通知
はじめに
あけましておめでとうございます.
はんぺんです.
最近は仮想通貨が流行ってますね,私も少しだけ購入してみました.
仮想通貨の管理アプリを使おうとしたのですが,日本円で表示できなかったり草コインだと見れなかったり,あまり実用的ではありませんでした.
そこで今回は仮想通貨の現在価格と合計額をLINE notifyを使って送ってみました.
コード
インポート
1 2 |
import requests import json |
仮想通貨のデータはJSON形式ですので,jsonを入れます.
仮想通貨の情報
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
crypt_principal = 10000 # 最初に使った額(円) crypt_sort = ['bitcoin', 'ripple', 'ethereum', ] # 持っている通貨の種類 crypt_amount = [0.001, 20, 0.01 ] # 持っている通貨の枚数 crypt_initial_price = [1500000, 300, 80000 ] # 通貨の購入額 |
今回はビットコイン(BTC),リップル(XRP),イーサリウム(ETH)を試しに取得してみました.
各取引所からAPI使って自動取得もいいですが,そこまで頻繁に取引するわけではないので今回は手動での入力にしました.
LINE notifyへの通知
1 2 3 4 5 6 |
def line_notify(message): url = "https://notify-api.line.me/api/notify" # Line notifyのURL token = 'トークン' # トークン headers = {'Authorization': 'Bearer ' + token} payload = {"message": message} r = requests.post(url, data=payload, headers=headers) |
以下を参考にさせていただきました.
ありがとうございました.
PythonからLINE NotifyでLINEにメッセージを送る
価格の取得
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
crypt_all = [] # 取得した情報 crypt_value = [] # 持っている仮想通貨の金額(現在価格 × 手持ちの枚数) crypt_value_total = 0 # 合計金額 for i in range(len(crypt_sort)): target_url = 'https://api.coinmarketcap.com/v1/ticker/' + crypt_sort[i] + '/?convert=JPY' # 各仮想通貨の情報の照会先 r = requests.get(target_url) #requestsを使ってwebから取得 crypt_all_buf_1 = r.json()[0] # Jsonの返還 crypt_all.append(crypt_all_buf_1) crypt_value_buf_1 = float(crypt_all_buf_1['price_jpy']) * crypt_amount[i] # 持っている仮想通貨の金額(現在価格 × 手持ちの枚数 crypt_value.append(crypt_value_buf_1) crypt_value_total_buf_1 = crypt_value_buf_1 #合計金額 crypt_value_total = crypt_value_total + crypt_value_total_buf_1 |
価格の情報を提供しているサイトは数多くあるのですが,以下のCryptocurrency Market Capitalizationsは日本円での取得ができ,なおかつマイナーなコインも多く情報があったので,こちらを使うことにしました.
必要な情報の抽出
1 2 3 4 5 6 7 8 9 10 11 12 13 |
crypt_info = [] for i in range(len(crypt_all)): name = crypt_all[i]['id'] + str('(' + (crypt_all[i]['symbol']) + ')') + '\n' # 名前 price = str(round(float(crypt_all[i]['price_jpy']), 6)) + ' 円' + '\n' # 現在価格 change = str(round(float(crypt_all[i]['price_jpy']) / float(crypt_initial_price[i ]), 2)) + '倍' + '\n' # 購入価格からの変化率 value = str(round(crypt_value[i])) + ' 円' + '\n' # 現在所持している仮想通貨の価値(円) crypt_info.append('\n' +name + price + change + value) total = '合計: ' + str(round(crypt_value_total)) + '円' profit = '利益: ' + str(round(crypt_value_total - crypt_principal)) + '円' crypt_info.append('\n' + total + '\n' + profit) |
以下のような情報を取得できます.
参考までにビットコインの情報を載せておきます.
[{
“id”: “bitcoin”,
“name”: “Bitcoin”,
“symbol”: “BTC”,
“rank”: “1”,
“price_usd”: “14847.8”,
“price_btc”: “1.0”,
“24h_volume_usd”: “18728500000.0”,
“market_cap_usd”: “249165386140”,
“available_supply”: “16781300.0”,
“total_supply”: “16781300.0”,
“max_supply”: “21000000.0”,
“percent_change_1h”: “-1.14”,
“percent_change_24h”: “-2.64”,
“percent_change_7d”: “2.27”,
“last_updated”: “1515057260”,
“price_jpy”: “1672659.60686”,
“24h_volume_jpy”: “2109834820449.9997558594”,
“market_cap_jpy”: “28069402660600”
}
]
実行
1 |
line_notify(crypt_info) |
実行したら数秒でLINEに届きます.

これで,いちいちたくさんの取引所を開いたり,ドルを円に換算しなくてよくなりました!
まとめ
今回は仮想通貨の現在価格を取得してLINEに通知してみました.
1時間に1回通知するという風に書いておけば,定期的に確認できるので非常に便利です.
PCを放置でやるのもいいですが,これをRaspberry pi を使うことで低消費電力で済みそうです.
これから試してみようと思います.
参考
CoinMarketCap JSON API Documentation
PythonからLINE NotifyでLINEにメッセージを送る
コメントを残す