iT邦幫忙

2021 iThome 鐵人賽

DAY 19
0
永豐金融APIs

永豐金API之30天不中斷Q&A系列 第 19

Day19 - 登入token與session相關問題

  • 分享至 

  • twitterImage
  •  
tags: 2021永豐金鐵人賽

初學者在使用的時候,可能會遇到下列錯誤訊息:

File "/usr/local/lib/python3.8/dist-packages/shioaji/shioaji.py", line 300, in place_order
trade = self._solace.place_order(contract, order, timeout, cb)
File "shioaji/backend/solace/api.pyx", line 488, in shioaji.backend.solace.api.SolaceAPI.place_order
File "shioaji/backend/solace/api.pyx", line 453, in shioaji.backend.solace.api.SolaceAPI._place_order_cb
shioaji.error.TokenError: 401 : Token is expired.

其中較重要的一句是:

TokenError: 401 : Token is expired.

什麼是Token

Token是後端server用來判別使用者身分的一個依據,就像一把鑰匙。任何透過API執行指令的行為,Client side都需要帶著Token向server請求,server才會接受這個請求。

怎麼取得Token & 解決錯誤問題

使用API登入後就可以取得Token,而這個Token的效期是一天,因此如果程式沒有關掉或是沒有登出的情況下,等到時間過了一天,要再次呼叫server的時候,就會遇到上述錯誤,因此建議每天早上8點左右的時候讓程式自動重新登入一次會是比較好的做法,第一個好處是重新登入之後會重抓商品檔,可以取得最新的商品資訊,第二個當然就是避免盤中的時候遇到TokenError的情況。


上一篇
Day18 - 如何盤中計算技術指標且發送訊號到line: line notify權杖申請
下一篇
Day20 - Shioaji的log位置,讀取方式
系列文
永豐金API之30天不中斷Q&A26
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言