😎
PyCharmでSwitchBot APIを叩く
はじめに
手順
token, secretなどの変数はソースコード内に書いておくと危険です。よくあるのは、環境変数に書く方法が行われます
色々な方法はありますが、ここではPyCharmの設定だけで閉じる手順を残しておきます。
- PyCharmを起動する
- メニューから "実行" を選び、"実行構成の編集" を選択
- 画面の赤枠の四角いやつを押す
- "環境変数" というウィンドウが開く。赤枠のプラスボタンを押すと、下の表に行が増えていきます。ここに入れた「名前」と「値」のペアが環境変数です。
- SwitchBot のスマホアプリで得たトークン、クライアントシークレットの値を、それぞれ"TOKEN", "SECRET" の名前で登録する。入力するときはダブルクリックで入力開始できます
- 2つとも入れ終わったら、OKボタンを押して、"環境変数" のウィンドウを閉じる
- "実行/デバッグ構成" のウィンドウもOKボタンを押して閉じる
- ここからはPythonのソースコードを変更します。以下のコードの箇所を変えていきます。
- 今まで文字列 ("abcdefg..." など) でベタに書いていたところを、以下のように書き換える
変更後は以下になります
# open token
token = os.environ.get('TOKEN')
# secret key
secret = os.environ.get('SECRET')
os.environ.get("")が行っているのは、5. で入れた環境変数(TOKEN, SECRET)の値を参照する、という意味になっています。こうすることで、ソースコードにtoken, secretをベタに書かなくてもよくなります。
- 最後に。SwitchBot APIのサンプルでは以下のようにprintが入っていますが、これをそのまま実行すると全部漏れてしまいます。以下のコードすべて削除しましょう。
print ('Authorization: {}'.format(token))
print ('t: {}'.format(t))
print ('sign: {}'.format(str(sign, 'utf-8')))
print ('nonce: {}'.format(nonce))
おすすめ:トークンのリセット
もし一度トークンが見えてしまった場合、スマートフォンでトークンを取得した画面からリセットが出来ます。リセットしてしまえば、一度見えてしまったトークンは即座に無効になります。
トークンを再設定する手間は発生しますが、安全度が高いので、強く推奨です。
Discussion