私のauカブコム証券のkabuステーションで自動売買プログラムの説明(1) トークン取得(token.py)

スポンサーリンク

token.pyのソースコード

import urllib.request
import json
import pprint
import sys
import register
import settings

obj = { 'APIPassword': settings.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
        #PUSh配信銘柄登録
        register.register()
except urllib.error.HTTPError as e:
    print(e)
    content = json.loads(e.read())
    pprint.pprint(content)
except Exception as e:
    print(e)

ほぼ、kabuステーション公式のサンプルそのままです。

https://github.com/kabucom/kabusapi/blob/master/sample/Python/kabusapi_token.py

詳細説明

ポイントは以下の2つです。

トークンをグルーバル変数格納用モジュール(setting.py)に格納

        rsi1570_settings.token = token

前の投稿でも書きましたが、取得したトークンをグルーバル変数格納用モジュール(setting.py)に格納して、以降のすべてのWebAPI呼び出しで使用するようにします。

数珠繋ぎ方式で次のWebAPI呼び出しにつなげる

        rsi1570_register.register()

これも別の投稿で書いた、「数珠繋ぎ方式」によって、処理がうまく行った場合のみ次のWebAPI呼び出しを行います。何らかのエラーが発生した場合は、ログを出力してそのまま処理を終了します。

コメント