iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 28
1
自我挑戰組

LINE BOT 新手村30日攻略系列 第 28

Day28 LINE BOT & NBA - 球員數據查詢

  • 分享至 

  • xImage
  •  

今天因為時間的關係,原本應該要完成兩個功能,但是先完成一個,段考完再來補QQ

今天要實現的功能有

  • 查詢特定球員數據

構思

同樣的,我們要先思考使用者該如何獲取資訊
首先,每個球員都必定屬於某個特定球隊,所以可以依此作為判斷標準
其次,每個球隊中的背號必定都是唯一的,所以可以依此作為判斷標準

先設計好兩個 Flex Message

  1. 顯示所有球隊
  2. 顯示該球隊所有球員

第一個部分之前已經設計過,只需要在 postback action 的 value 稍作修改即可

網頁觀察

一樣先到網頁上觀察 https://tw.global.nba.com/teams/roster/#!/hawks
打開瀏覽器的開發者工具,找到 network ,選擇 XHR

發現到裡面的 playerstats.json 有我們需要的資料

資料的格式是以每個球員做為區隔,正好和我們要的是相符的

獲取資料

我們需要的資料包括

  • 球員基本資料
    • 姓名
    • 所屬球隊
    • 在球隊的位置
    • 身高/體重
    • 選秀年
    • 年資
    • 球員背號
    • 球員 ID
  • 例行賽基本資料
    • 比賽場數
    • 先發次數
    • 場均時間
    • 投籃%
    • 三分球%
    • 罰球%
    • 平均籃板
    • 平均助攻
    • 平均得分

接下來我們要寫三個 function

  1. GetTeam2()
  2. GetPlayers.py
  3. GetPlayer.py

GetTeam2()

可以直接改寫昨天的 GetTeam.py ,這邊稍微提一下要修改的內容
在 action 的部分修改成合適的內容

Team_out['contents'][0]['action']['data'] = 'SelectPlayerFrom {}'.format(Team['code'])
Team_out['contents'][1]['action']['data'] = 'SelectPlayerFrom {}'.format(Team['code'])      

GetPlayers.py

這邊要獲取特定球隊的所有球員
先製作一個版型,可以提供加入球員基本資訊

接下來將版型分成三個部分

  1. TeamPlayers.json
    存放所有訊息資訊
  2. Seperater.json
    等同 Flex Message 的 Seperater
    分開放比較方便
  3. Player.json
    存放單筆球員資訊

接下來流程如下

  1. 發送 requests
  2. 接收 responce
  3. 將球隊基本資料放入 TeamPlayers.json
  4. 將球員資訊依序放入 Player.json , 並推入至 TeamPlayers.json

GetPlayer.py

這邊要獲取特定球隊的特定球員訊息
先製作一個版型,存放上述的相關資訊

接下來將版型分成了四個部分

  1. PlayerDetail.json
    這裡要存放所有的訊息
  2. Seperater.json
    等同 Flex Message 的 Seperater
    分開放比較方便
  3. PlayerDetail-Card.json
    這裡會存放球員的基本訊息
  4. PlayerDetail-Profile.json
    這裡會存放球員的基本訊息
  5. PlayerDetail-Avg.json
    這裡會存放球員例行賽的平均數據

Rich Menu

最後一樣稍微修改一下我們的 Rich Menu
將第四個 Buttom 改成 球員數據

成果

最終測試結果如下:

  • 選擇球隊
  • 選擇球員
  • 球員數據

後記

很倉促的在大約4個小時完成了這份
內容說實話真的還很粗糙,還有很多可以再做的更好的地方
總之還是希望大家玩得開心囉!

參考資料

今日練習 Github 連結
NBA
LINE Flex Message Simulator
W3schools HTML color picker
初學者看懂 NBA 數據


上一篇
Day27 LINE BOT & NBA - 賽程查詢
下一篇
Day29 LINE BOT & NBA - 球隊數據查詢
系列文
LINE BOT 新手村30日攻略30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言