4.APIでデータのやり取り(3)取引所の暗証番号はベタ書きしない 「お手製 python bitflyer Trading Bot」

botコード、暗証番号のコピーだらけで危険だぞー

 

テストしてるとファイルが一杯できるが、取引所の「keyとsecret」をベタ書きにするとそこら中にコピーが散乱してしまって、間違えてブログにアップしそうで怖いです。コピーも面倒です。
また、他人様の作ったbitcoin関連のプログラムは、自分のkey,secretを投入する必要があるが、key,secretを間接的に投入するこの方法のほうが簡単です。

具体的作業

  1. config.jsonにパスワード等秘密の情報を記入
  2. 決めたフォルダに置く(ここまでは一回だけやれば終わり)
  3. プログラムと同じフォルダにconfig.pyのコピーを置く
  4. プログラムに2行記述し、代入
    • from config import Config
    • cfg=Config()
    • key=cfg.bf_key・・・・

config.json 定義ファイル(ファイル名は何でも良い)

   bf_key:”*******”
   bf_secret:”******”
   mex_key:”*******”
   mex_secret:”******”
   line_token:”********”
   discord_token:”*******”

class Config() クラス化のコード

import json
class Config:
  def __init__(self, json_path=”c:\config\config.json”):
    config = json.load(open(json_path, “r”))
    self.bf_api_key = config[“bf_key”]
    self.bf_api_secret = config[“bf_secret”]
    self.mex_api_key = config[“mex_key”]
    self.mex_api_secret = config[“mex_secret”]
    self.line_token = config[“line_notify_token”]
    self.discord_token = config[“discord_token”]

def bitcoin() プログラム

from config import Config
cfg=Config()
pybitflyer.API(key=cfg.bf_key,secret=cfg.bf_secret,・・・・) 値を利用

値のセットが2段構えになるので最初だけ面倒だが、暗証番号が漏れないという保険だとしたらたやすい作業だ。

また、key,secretは、定期的に変更したほうが良いのは言うまでもないが、この方法は、config.jsonのその部分を一回更新するだけでどのプログラムも無問題。
もし、ベタコピペだったら、動かすたびコピペし直しで、モチベが失せてゆくやね。


Windows-PC内のイメージとしてこんな感じである

 

さらにコンフィグファイルを読み込む実際のコードである