トークン発行 /token 呼出 get_token.py
“token.py”がというファイル名だと動かない
前からこのブログでは、トークンを取得する処理のモジュールのファイル名を、「token.py」としてご紹介してきましたが、すみません、そのままのファイル名だと動きませんでした。
私の実際に使用していたファイル名は「rsi1570_token.py」など、自分用の目印となる接頭語を付けていたので動作していましたが、今回「token.py」そのままだと動かないことに気づきました。
どうも、PythonのRESTクライアントパッケージである、websocket-clientと干渉するようですが、詳しいことは調べていません。とにかく、「token.py」のファイル名を変えれば動くので、今回は「get_token.py」としています。
その他の処理は、前回と変わりませんが、前回の記事でも書いたように、メイン→サブモジュール呼び出し型に変更しています。
import urllib.request
import json
import pprint
import sys
import settings
import password
def token():
obj = { 'APIPassword': password.apiPassword }
json_data = json.dumps(obj).encode('utf8')
url = 'http://localhost:' + settings.port + '/kabusapi/token'
req = urllib.request.Request(url, json_data, method='POST')
req.add_header('Content-Type', 'application/json')
try:
print('###token')
with urllib.request.urlopen(req) as res:
print(res.status, res.reason)
for header in res.getheaders():
print(header)
print()
content = json.loads(res.read())
pprint.pprint(content)
token = content["Token"]
settings.token = token
return
except urllib.error.HTTPError as e:
print(e)
content = json.loads(e.read())
pprint.pprint(content)
except Exception as e:
print(e)
sys.exit()
if __name__ == "__main__":
import sys
token()
パスワードはpassword.pyというモジュールに別出しにしました
しいて言えば、パスワードはsettings.pyではなく、password.pyというモジュールに別出しにしました。
これは、ソースを公開するときに消すことを忘れないようにするためで、皆さんは特に必要ないと思います。
コメント