2023-10-17 課程補充資料 Week 06
相關連結
1. 流程圖製作工具, https://draw.io
2. Wiki 工具, https://www.dokuwiki.org/dokuwiki
3. Bug追蹤工具, https://www.mantisbt.org/
4. Version control 版本管理, GitHub / Gitlab
5. Subversion, https://tortoisesvn.net/
DEMO task
1. 登入
2. 修改暱稱, 密碼 與 大頭貼
3. 登入大聽
不可以使用 Postman, 請全程使用 Python code 來進行.
今天 API 結果 URL
https://www.cutexyz.com/edu/game2309/API/
今日會使用的 API List, 注意 API 位置有變動
API 1: login
Protocol: HTTPS POST
API URL: https://www.cutexyz.com/edu/game2309/API/services/001_login.php
Parameters:
1. student_uid: 學號
2. pwd: 密碼, 預設為 cute301, 沒有忘記密碼功能, 如果有人忘記, 請先與老師通知
Return Data ( JSON FORMAT ):
1. result: 結果, OK 代表沒問題, ERROR 代表錯誤發生
2. data: 內含唯一資料 token( !! 有效期 10 秒 !! ): 用於登入之後呼叫別的 API 搭配使用
3. msg: 如果有需要詳述問題時就會在這邊顯示錯誤代號, 要知道詳情需呼叫 error msg 相關 API
API 2: updateprofile
Protocol: HTTPS POST
API URL: https://www.cutexyz.com/edu/game2309/API/services/100_updateprofile.php
Parameters:
1. student_uid: 學號
2. token: 你在登入後, 由系統發給你的動態密碼, 有效期內這個密碼不會變動
3. mode: 你想使用的功能; 1: 修改暱稱, 2: 修改密碼, 3: 上傳大頭貼
4.value1:帶入的參數, mode 1 請帶入暱稱, mode 2 輕帶入新的密碼, mode 3 請帶入檔案( jpg 限定)
Return Data ( JSON FORMAT ):
1. result: 結果, OK 代表沒問題, ERROR 代表錯誤發生
2. data: null 本 API 不會使用
3. msg: 如果有特殊裝框需要詳述問題時就會在這邊顯示
API 3: lobbyinfo
Protocol: HTTPS POST
API URL: https://www.cutexyz.com/edu/game2309/API/services/002_lobbyinfo.php
Parameters:
1. student_uid: 學號
2. token: 你在登入後, 由系統發給你的動態密碼, 有效期內這個密碼不會變動
Return Data ( JSON FORMAT ):
1. result: 結果, OK 代表沒問題, ERROR 代表錯誤發生
2. data:
players( array ), 目前登入大廳的玩家暱稱
broadcast_msg( array ), 廣播訊息( 可能不只一條訊息 )
messages( array ), 個人訊息( 可能不只一條訊息 ), 每一則訊息都會是一個 array,
內含有 sender( 發送訊息的玩家暱稱,
以及 message( 對方所傳送的內容)
3. msg: 如果有特殊裝框需要詳述問題時就會在這邊顯示
參考資料
{
"result":"OK",
"data":{
"players":[
"Doctor",
"美美的"
],
"broadcast_msg":[
"恭喜您進入遊戲大廳, 請記得協助一下你座位鵬邊的同學喔!", "下一階段就會是進入遊戲房間跟其他人互動, 敬請期待!" ], "messages":[ { "sender":"簡老師", "message":"歡迎光臨, 王大帥同學!" }, { "sender":"李大同", "message":"歡迎光臨, 今天天氣很好" } ] }, "msg":"Good job!"
}
API 4: errmsg
Protocol: HTTPS POST
API URL: https://www.cutexyz.com/edu/game2309/API/services/900_errormsg.php
Parameters:
1. student_uid: 學號
2. error_no: 錯誤代碼, i.e. 20001
Return Data ( JSON FORMAT ):
1. result: 結果, OK 代表沒問題, ERROR 代表錯誤發生
2. data: 內有一個參數 error_msg, 此內容即為錯誤訊息內容
3. msg: 如果有特殊裝框需要詳述問題時就會在這邊顯示
DEMO
import json
import requests
#準備資料
student_uid = '1234567890'
student_pwd = 'abcd'
# --------------------------------------------------------------------------------------
# API 001 Login
url_target = "https://www.cutexyz.com/edu/game2309/API/services/001_login.php"
my_data = {'student_uid': student_uid, 'pwd': student_pwd}
# 將檔案加入 POST 請求中
r = requests.post(url_target, data = my_data)
print("Result: ", r.content.decode('UTF-8'))
dataArray = json.loads(r.content.decode('UTF-8'))
my_token = dataArray['data']['token']
print("Token: ", my_token)
# --------------------------------------------------------------------------------------
# API 100 updateprofile
my_data = {'student_uid': student_uid, 'token': my_token, 'mode': '3'}
# 要上傳的檔案
my_files = {'value1': open('head.jpg', 'rb')}
url_target = "https://www.cutexyz.com/edu/game2309/API/services/100_updateprofile.php"
# 將檔案加入 POST 請求中
r = requests.post(url_target, files = my_files, data = my_data)
print("Result: ", r.content.decode('UTF-8'))
# --------------------------------------------------------------------------------------
# API 002 lobbyinfo
url_target = "https://www.cutexyz.com/edu/game2309/API/services/002_lobbyinfo.php"
my_data = {'student_uid': student_uid, 'token': my_token}
# 將檔案加入 POST 請求中
r = requests.post(url_target, data = my_data)
print("Result: ", r.content.decode('UTF-8'))
dataArray = json.loads(r.content.decode('UTF-8'))
#print("Token: ", dataArray['data']['token'])
jsondata = '{"respond":"OK", "value":"12345678"}';
dataArray = json.loads(jsondata);
print("A: ", dataArray["respond"])
exit(0);
