目前需求開發一支可以控制 HTML5 Canvans 遊戲的機器人,現在的構想是用 Selenium 來控制網頁元件,以驗收測試為基礎來寫。
👉解析API傳回的JSON字串
首先,需要先進入遊戲,為了節省登入的步驟,所以以呼叫API的方式來進入遊戲。呼叫後傳回格式如下:
{
"data": {
"url": "https://h5c.cqgame.games/1/?token=da05d84ab17d2ed4f184d2f7axxxxxxxx&language=zh-CN"
},
"status": {
"code": 0,
"message": "success",
"timestamp": 1038106999
}
}
裡面的 url 就是進入遊戲的入口,將它擷取放入測試之前的步驟。接下來就要用 PHP 裡跟 JSON 有關的函式。首先利用 file_get_contents() 將 JSON 字串取回來,再利用 json_decode() 解碼。
// 處理 ssl 造成的錯誤
$stream_opts = [
"ssl" => [
"verify_peer"=>false,
"verify_peer_name"=>false,
]
];
// 取回 API 返回內容
$data = file_get_contents($this::$api_url, false, stream_context_create($stream_opts));
// JSON解碼,取得 url
$game_url = json_decode($data, true)['data']['url'];
接著就可以前往遊戲畫面。
👉Ubuntu Command
reboot 重開機