現在測試環境無法登入囉~
該如何是好呢?
先前可以使用測試環境與測試帳號登入,如Day3的程式碼:
import shioaji as sj
api = sj.Shioaji(simulation=True)
accounts = api.login(
person_id="PAPIUSER01",
passwd="2222",
contracts_cb=lambda security_type: print(f"{repr(security_type)} fetch done."),
)
可以取得商品類別資料,表示我們有登入成功(如Day4)。
但是近期使用,卻得到這樣的回應:
(700008ea2000) Connect attempt for host '(遮蔽...) for session '(c0,s1)_sinopac(client name '(遮蔽...)', VPN name 'sinopac', peer address 'hostname '218.32.76.102:80' IP 218.32.76.102:80', connection 'tcp_TxRx' local address 'IP 10.88.22.46:60217')' timed out
pysolace/core/sol.cpp(257): connected failed, return Not ready
[16:47:02.298421] [3077790] [pysolace/core/sol.cpp:445:SendRequest] [E] [thread 3215562] Not ready
Response Code: 0 | Event Code: 2 | Info: Session connect timeout | Event: Session connection attempt failed
Traceback (most recent call last):
File "(遮蔽路徑...)", line 4, in <module>
accounts = api.login(
File "(遮蔽路徑...)", line 133, in login
accounts = self._solace.login(person_id, passwd, hashed)
File "shioaji/backend/solace/api.pyx", line 332, in shioaji.backend.solace.api.SolaceAPI.login
File "(遮蔽路徑...)", line 49, in raise_resp_error
raise Exception(resp)
Exception: {}
在連線進去後,卻在程式內部出現錯誤。探究原因後,才知道原來他們把測試環境關閉了,因此我們無法使用測試環境進行測試。只能用正式環境的方式進行進行開發與測試,因此要小心別亂下單喔!
想要在正式環境登入,就先去永豐開戶,取得登入的帳號密碼後,就可以在正式環境使用shioaji。正式環境登入的方式可以參考:https://sinotrade.github.io/tutor/login/,也就是在初始話物件時候,把測試環境的參數拿掉,也就是把api = sj.Shioaji(simulation=True)
改成api = sj.Shioaji()
即可。
程式可以參考範例:
import shioaji as sj
api = sj.Shioaji()
api.login(
person_id="YOUR_ID",
passwd="YOUR_PASSWORD",
contracts_cb=lambda security_type: print(f"{repr(security_type)} fetch done.")
)
在過了這麼久後有人跟我討論,才發現測試環境已經不能用了。真可惜,只能下實單,希望以後能開放,這樣開發的時候不會怕...