獲取咕咚運動移動應用中的數據——非官方API


Author : iascchen(at)gmail(dot)com

Date : 2013-07-17

新浪微博 : @問天鼓


這些 API 通過對 Codoon 運動的 Android 版本 下載地址 進行了反編譯所得到的,錯誤在所難免,隨時可能失效,僅供大家學習和自娛自樂。

下面所列舉的 API 均爲讀取運動數據相關的API。不包括其他發消息、發微博、更新狀態等功能。

這個工作已經做了些日子,一直想等着用咕咚手環數據測試一下,所以沒有寫下來。不過照着目前網友們對咕咚手環的測試樣品的評論來看,估計還需要一段時間纔能有結果。申波在七月初參加2013移動互聯網創新大會時透露 Codoon 官方的 API 要到明年纔會開放。在目前這個過渡時期,大家可以用這個來玩玩吧。

詳細內容如下:

  1. 概述和登錄

  2. 用戶運動成就

  3. 用戶運動歷史

  4. 智能配件相關 API(疑似)

  5. 其他

1. 概述和登錄

客戶端請求基本說明

Codoon App 一般通過 HTTP 協議與 api.codoon.com 通訊。在進行其他訪問之前,必須先登錄。可以用 Codoon 網註冊用戶通過 HTTP Basic 協議進行登陸。正確登錄之後,在每次請求的HTTP中,需要將認證時的所獲得 access_token 值設置到 HTTP Header:**Authorization** 裏,即可保持會話。除此之外,還需要將**Charset**設置爲 UTF-8。如:

Authorization : Bearer  4836c512060faa34793730959daa901f
Charset : UTF-8

Codoon App 還支持利用新浪微博、騰訊微博、人人網的用戶,通過OAuth協議登錄(這幾種登錄方式本文並未論述)。

帶參數的請求

需要向 Server 端提交參數的請求,均需要採用 POST 方式傳參。比較特殊的是,在 Codoon 的接口中,需要將參數需要轉化爲 JSON 之後,放在 POST 體中再提交。

下面的 Python 代碼作爲參考示例:

startDate = "2013-06-01"
endDate =  "2013-06-30"
command = "http://api.codoon.com/api/gps_statistic"

request_data = {"from_date" : fromDate , "to_date" : toDate}
response = requests.post(command , data = json.dumps(request_data),  headers = self.codoonHeaders )
content = json.loads(response.content)

利用 Codoon 網註冊用戶登錄

登陸

Request:

POST    
http://api.codoon.com/token

Params:

# 下面兩個參數爲常量,說明登錄方式
"grant_type" : "password" ,
"scope" : "user" ,

# Client_ID 的值爲來自於應用的靜態變量值。此處一般不需修改。
"client_id" : "dc039f07e003da02938a5bc4605b5acc" ,

# 您個人在 Codoon 網註冊的Email地址和用戶密碼。
"email": email, 
"password" : password 

Return :

Access Token 值爲 JSON 內容中的 "access_token" : "4836c512060faa34793730959daa901f"

完整JSON示例如下:

{
    "user_id": "bcf5ea34-891f-xxxx-a26f-496604a5xxxx", 
    "access_token": "4836c512060faa34793730959daa901f", 
    "token_type": "bearer", 
    "scope": "user", 
    "expire_in": 93312000, 
    "refresh_token": "fb17cfd5ab4b61ee23de1a4c28969fec"
}

獲得最新可用 Android 軟件版本信息

Request:

GET 
http://static.codoon.com/app/android/version_run.xml

Params:

Return :

完整XML示例如下:

<client>
    <version>53</version>
    <date>2013-07-10 18:33:59</date>
    <description>&#21653;&#21658;&#36816;&#21160;+&#23458;&#25143;&#31471;3.3.8</description>
    <app_name>codoonsportsv3.3.8.apk</app_name>
    <app_url>http://static.codoon.com/app/android/codoonsports.apk</app_url>
</client>

獲得用戶基本信息憑證

從數據上看,用戶基本信息憑證所包含的數據主要在軟件的“更多”頁面中顯示。

更多個人信息

Request:

GET 
http://api.codoon.com/verify_credentials

Params:

Return :

完整JSON示例如下:

{
    "get_icon_tiny": "http://img3.codoon.com/portraitce67a9da19db4d6ebf85f8eeb24d44f4!24m24", 
    "mobilenumber": "I1370574493782", 
    "domain": "~iyp2ix", 
    "certificatename": "", 
    "weight": 58.2, 
    "week_goal_value": 70000, 
    "get_icon_large": "http://img3.codoon.com/portraitce67a9da19db4d6ebf85f8eeb24d44f4!220m220", 
    "height": 160, 
    "_auto_id": 1053580, 
    "portrait": "http://img3.codoon.com/portraitce67a9da19db4d6ebf85f8eeb24d44f4", 
    "id": "bcf5ea34-891f-xxxx-a26f-496604a5xxxx", 
    "is_newuser": true, 
    "mobile_portraits": [], 
    "nick": "iascchen", 
    "descroption": "\u6ce1\u6ce1", 
    "followers": 0, 
    "location": "\u5317\u4eac ", 
    "last_login": 0, 
    "get_icon_middle": "http://img3.codoon.com/portraitce67a9da19db4d6ebf85f8eeb24d44f4!50m50", 
    "email": "[email protected]", 
    "certificateinfo": "", 
    "installed_apps": "CDN_SPORTS CDN_LEPHONERUN", 
    "realname": " ", 
    "emailverified": true, 
    "stridelength": 66, 
    "verify_code": "6281585409bf448eb8cae5b54da57253", 
    "birthday": {
        "y": 2013, 
        "m": 6, 
        "d": 9
    }, 
    "routes_count": 3, 
    "hobby": "\u8dd1\u6b65", 
    "get_icon_xlarge": "http://img3.codoon.com/portraitce67a9da19db4d6ebf85f8eeb24d44f4!640m640", 
    "fighting_level": 1, 
    "mobile_portraits_l": [], 
    "get_icon_small": "http://img3.codoon.com/portraitce67a9da19db4d6ebf85f8eeb24d44f4!40m40", 
    "gender": "0", 
    "followings": 1, 
    "week_goal_type": "steps", 
    "certificateid": "", 
    "mobile_portraits_x": [], 
    "runstridelength": 80, 
    "mobileverified": false, 
    "group_ids": "", 
    "tmp_portrait": "http://img3.codoon.com/portraitce67a9da19db4d6ebf85f8eeb24d44f4", 
    "age": 0, 
    "address": ""
}

2. 用戶運動成就

用戶成就積分

用戶成就激勵系統上的積分和卡幣展示。

成就

Request:

GET
http://api.codoon.com/api/get_user_growing_point_related

Params:

Return :

{
    "status": "OK", 
    "data": {
        "fighting_level": 1, 
        "user_growing_point": 3, 
        "user_calbank_balance": 300
    }, 
    "description": ""
}

用戶運動紀錄

用戶個人紀錄顯示。

紀錄

Request:

GET
http://api.codoon.com/api/gps_highest_record

Params:

Return :

{
    "status": "OK", 
    "data": {
        "ride_record": {
            "route_count": 0
        }, 
        "run_record": {
            "route_count": 0
        }, 
        "ski_record": {
            "route_count": 0
        }, 
        "skate_record": {
            "route_count": 0
        }, 
        "walk_record": {
            "highest_speed_time": "2013-06-14T16:02:31", 
            "highest_time": 740.0, 
            "highest_speed": 10.15969, 
            "highest_length_time": "2013-06-24T18:39:10", 
            "highest_time_time": "2013-06-24T18:39:10", 
            "route_count": 3, 
            "highest_kmspeed": 643, 
            "highest_kmspeed_time": "2013-06-24T18:39:10", 
            "highest_length": 1160
        }
    }, 
    "description": ""
}

用戶獎章

用戶獎章展示。

勳章

Request:

GET
http://api.codoon.com/api/get_user_medal

Params:

Return :

返回結果會將所有用戶可能獲得的勳章均列出來。如果用戶已經擁有這個勳章,"data"."medals"."owned" 取值爲 true.

{
    "status": "OK", 
    "data": [
        {
            "total_count": 7, 
            "owend_count": 0, 
            "display_group": 0, 
            "medals": [
                {
                    "code": "01", 
                    "des": "\u4f60\u7d2f\u8ba1\u8fd0\u52a87\u6b21\uff0c\u83b7\u5f97\u8be5\u679a\u5956\u7ae0 \u6210\u5c31\u70b9+2", 
                    "name": "\u5e78\u8fd07", 
                    "owned": false, 
                    "gpoint": 2
                }, 
                {
                    "code": "02", 
                    "des": "\u4f60\u7d2f\u8ba1\u8fd0\u52a815\u6b21\uff0c\u83b7\u5f97\u8be5\u679a\u5956\u7ae0 \u6210\u5c31\u70b9+3", 
                    "name": "\u575a\u6301\u8fd0\u52a8", 
                    "owned": false, 
                    "gpoint": 3
                }, 
                {
                    "code": "03", 
                    "des": "\u4f60\u7d2f\u8ba1\u8fd0\u52a821\u6b21\uff0c\u83b7\u5f97\u8be5\u679a\u5956\u7ae0 \u6210\u5c31\u70b9+5", 
                    "name": "\u4e60\u60ef\u8fd0\u52a8", 
                    "owned": false, 
                    "gpoint": 5
                }, 
                {
                    "code": "04", 
                    "des": "\u4f60\u7d2f\u8ba1\u8fd0\u52a830\u6b21\uff0c\u83b7\u5f97\u8be5\u679a\u5956\u7ae0 \u6210\u5c31\u70b9+10", 
                    "name": "\u7231\u4e0a\u8fd0\u52a8", 
                    "owned": false, 
                    "gpoint": 10
                }, 
                {
                    "code": "05", 
                    "des": "\u4f60\u7d2f\u8ba1\u8fd0\u52a860\u6b21\uff0c\u83b7\u5f97\u8be5\u679a\u5956\u7ae0 \u6210\u5c31\u70b9+10", 
                    "name": "60\u6b21\u8fd0\u52a8", 
                    "owned": false, 
                    "gpoint": 10
                }, 
                {
                    "code": "06", 
                    "des": "\u4f60\u7d2f\u8ba1\u8fd0\u52a890\u6b21\uff0c\u83b7\u5f97\u8be5\u679a\u5956\u7ae0 \u6210\u5c31\u70b9+10", 
                    "name": "90\u6b21\u8fd0\u52a8", 
                    "owned": false, 
                    "gpoint": 10
                }, 
                {
                    "code": "07", 
                    "des": "\u4f60\u7d2f\u8ba1\u8fd0\u52a8120\u6b21\uff0c\u83b7\u5f97\u8be5\u679a\u5956\u7ae0 \u6210\u5c31\u70b9+10", 
                    "name": "120\u6b21\u8fd0\u52a8", 
                    "owned": false, 
                    "gpoint": 10
                }
            ], 
            "display_group_name": "\u6b21\u6570\u5956\u7ae0"
        }, 
        {
            "total_count": 10, 
            "owend_count": 1, 
            "display_group": 1, 
            "medals": [
                {
                    "code": "10", 
                    "name": "\u8fc8\u51fa\u7b2c\u4e00\u6b65", 
                    "des": "\u4f60\u8fc8\u51fa\u8fd0\u52a8\u7684\u7b2c\u4e00\u6b65\uff0c\u5b8c\u6210\u4efb\u610f\u8fd0\u52a81\u516c\u91cc\uff0c\u83b7\u5f97\u8be5\u679a\u5956\u7ae0 \u6210\u5c31\u70b9+1", 
                    "gpoint": 1, 
                    "owned": true, 
                    "time": "2013-06-24 18:51:43"
                }, 
                {
                    "code": "11", 
                    "des": "\u4f60\u4e00\u6b21\u8dd1\u6b65/\u8d70\u8def\u8fd0\u52a8\u8fbe\u52305\u516c\u91cc\uff0c\u83b7\u5f97\u8be5\u679a\u5956\u7ae0 \u6210\u5c31\u70b9+2", 
                    "name": "\u6162\u8dd15\u516c\u91cc", 
                    "owned": false, 
                    "gpoint": 2
                }, 
                {
                    "code": "12", 
                    "des": "\u4f60\u4e00\u6b21\u8dd1\u6b65/\u8d70\u8def\u8fd0\u52a8\u8fbe\u523010\u516c\u91cc\uff0c\u83b7\u5f97\u8be5\u679a\u5956\u7ae0 \u6210\u5c31\u70b9+5", 
                    "name": "\u6162\u8dd110\u516c\u91cc", 
                    "owned": false, 
                    "gpoint": 5
                }, 
                {
                    "code": "17", 
                    "des": "\u4f60\u4e00\u6b21\u9a91\u884c\u8fd0\u52a8\u8fbe\u523010\u516c\u91cc\uff0c\u83b7\u5f97\u8be5\u679a\u5956\u7ae0 \u6210\u5c31\u70b9+2", 
                    "name": "10\u516c\u91cc\u9a91\u884c", 
                    "owned": false, 
                    "gpoint": 2
                }, 
                {
                    "code": "18", 
                    "des": "\u4f60\u4e00\u6b21\u9a91\u884c\u8fd0\u52a8\u8fbe\u523030\u516c\u91cc\uff0c\u83b7\u5f97\u8be5\u679a\u5956\u7ae0 \u6210\u5c31\u70b9+5", 
                    "name": "30\u516c\u91cc\u9a91\u884c", 
                    "owned": false, 
                    "gpoint": 5
                }, 
                {
                    "code": "15", 
                    "des": "\u4f60\u7d2f\u8ba1\u8dd1\u6b65/\u8d70\u8def\u8fd0\u52a8\u8fbe\u5230100\u516c\u91cc\uff0c\u83b7\u5f97\u8be5\u679a\u5956\u7ae0 \u6210\u5c31\u70b9+10", 
                    "name": "\u6311\u6218100\u516c\u91cc", 
                    "owned": false, 
                    "gpoint": 10
                }, 
                {
                    "code": "1a", 
                    "des": "\u4f60\u7d2f\u8ba1\u9a91\u884c\u8fd0\u52a8\u8fbe\u5230100\u516c\u91cc\uff0c\u83b7\u5f97\u8be5\u679a\u5956\u7ae0 \u6210\u5c31\u70b9+10", 
                    "name": "100\u516c\u91cc\u9a91\u884c", 
                    "owned": false, 
                    "gpoint": 10
                }, 
                {
                    "code": "16", 
                    "des": "\u4f60\u7d2f\u8ba1\u8dd1\u6b65/\u8d70\u8def\u8fd0\u52a8\u8fbe\u5230500\u516c\u91cc\uff0c\u83b7\u5f97\u8be5\u679a\u5956\u7ae0 \u6210\u5c31\u70b9+10", 
                    "name": "\u6311\u6218500\u516c\u91cc", 
                    "owned": false, 
                    "gpoint": 10
                }, 
                {
                    "code": "1b", 
                    "des": "\u4f60\u7d2f\u8ba1\u9a91\u884c\u8fd0\u52a8\u8fbe\u5230500\u516c\u91cc\uff0c\u83b7\u5f97\u8be5\u679a\u5956\u7ae0 \u6210\u5c31\u70b9+30", 
                    "name": "\u5343\u91cc\u8d70\u5355\u9a91", 
                    "owned": false, 
                    "gpoint": 30
                }, 
                {
                    "code": "1c", 
                    "des": "\u4f60\u7d2f\u8ba1\u9a91\u884c\u8fd0\u52a8\u8fbe\u52303200\u516c\u91cc\uff0c\u83b7\u5f97\u8be5\u679a\u5956\u7ae0 \u6210\u5c31\u70b9+50", 
                    "name": "\u73af\u6cd5\u5956\u676f", 
                    "owned": false, 
                    "gpoint": 50
                }
            ], 
            "display_group_name": "\u8ddd\u79bb\u5956\u7ae0"
        }, 
        {
            "total_count": 5, 
            "owend_count": 1, 
            "display_group": 2, 
            "medals": [
                {
                    "code": "21", 
                    "name": "\u5f00\u59cb\u8d70\u8def", 
                    "des": "\u4f60\u5b8c\u6210\u7b2c\u4e00\u6b21\u8d70\u8def\u8fd0\u52a8\uff0c\u83b7\u5f97\u8be5\u679a\u5956\u7ae0 \u6210\u5c31\u70b9+1", 
                    "gpoint": 1, 
                    "owned": true, 
                    "time": "2013-06-14 16:02:45"
                }, 
                {
                    "code": "20", 
                    "des": "\u4f60\u5b8c\u6210\u7b2c\u4e00\u6b21\u8dd1\u6b65\u8fd0\u52a8\uff0c\u83b7\u5f97\u8be5\u679a\u5956\u7ae0 \u6210\u5c31\u70b9+1", 
                    "name": "\u5f00\u59cb\u8dd1\u6b65", 
                    "owned": false, 
                    "gpoint": 1
                }, 
                {
                    "code": "22", 
                    "des": "\u4f60\u5b8c\u6210\u7b2c\u4e00\u6b21\u9a91\u884c\u8fd0\u52a8\uff0c\u83b7\u5f97\u8be5\u679a\u5956\u7ae0 \u6210\u5c31\u70b9+1", 
                    "name": "\u5f00\u59cb\u9a91\u884c", 
                    "owned": false, 
                    "gpoint": 1
                }, 
                {
                    "code": "23", 
                    "des": "\u4f60\u5b8c\u6210\u7b2c\u4e00\u6b21\u6ed1\u96ea\u8fd0\u52a8\uff0c\u83b7\u5f97\u8be5\u679a\u5956\u7ae0 \u6210\u5c31\u70b9+1", 
                    "name": "\u5f00\u59cb\u6ed1\u96ea", 
                    "owned": false, 
                    "gpoint": 1
                }, 
                {
                    "code": "24", 
                    "des": "\u4f60\u5b8c\u6210\u7b2c\u4e00\u6b21\u6ed1\u51b0\u8fd0\u52a8\uff0c\u83b7\u5f97\u8be5\u679a\u5956\u7ae0 \u6210\u5c31\u70b9+1", 
                    "name": "\u5f00\u59cb\u6ed1\u51b0", 
                    "owned": false, 
                    "gpoint": 1
                }
            ], 
            "display_group_name": "\u7c7b\u578b\u5956\u7ae0"
        }
    ], 
    "description": ""
}

用戶統計

用戶歷史數據統計。

統計

Request:

POST
http://api.codoon.com/api/gps_statistic

Params:

此處參數需要轉化爲 JSON 之後,放在 POST 消息體中再提交。

# 日期格式如:2013-06-01
"from_date" : fromDate , 
"to_date" : toDate

Return :

以下數據返回 2013-06-01 和 2013-06-30 之間的GPS統計數據。

{
    "status": "OK", 
    "data": {
        "detail": [
            {
                "date": "2013-06-01", 
                "length": 0
            }, 
            {
                "date": "2013-06-02", 
                "length": 0
            }, 
            {
                "date": "2013-06-03", 
                "length": 0
            }, 
            {
                "date": "2013-06-04", 
                "length": 0
            }, 
            {
                "date": "2013-06-05", 
                "length": 0
            }, 
            {
                "date": "2013-06-06", 
                "length": 0
            }, 
            {
                "date": "2013-06-07", 
                "length": 0
            }, 
            {
                "date": "2013-06-08", 
                "length": 0
            }, 
            {
                "date": "2013-06-09", 
                "length": 0
            }, 
            {
                "date": "2013-06-10", 
                "length": 0
            }, 
            {
                "date": "2013-06-11", 
                "length": 0
            }, 
            {
                "date": "2013-06-12", 
                "length": 0
            }, 
            {
                "date": "2013-06-13", 
                "length": 0
            }, 
            {
                "date": "2013-06-14", 
                "length": 28
            }, 
            {
                "date": "2013-06-15", 
                "length": 0
            }, 
            {
                "date": "2013-06-16", 
                "length": 0
            }, 
            {
                "date": "2013-06-17", 
                "length": 370
            }, 
            {
                "date": "2013-06-18", 
                "length": 0
            }, 
            {
                "date": "2013-06-19", 
                "length": 0
            }, 
            {
                "date": "2013-06-20", 
                "length": 0
            }, 
            {
                "date": "2013-06-21", 
                "length": 0
            }, 
            {
                "date": "2013-06-22", 
                "length": 0
            }, 
            {
                "date": "2013-06-23", 
                "length": 0
            }, 
            {
                "date": "2013-06-24", 
                "length": 1160
            }, 
            {
                "date": "2013-06-25", 
                "length": 0
            }, 
            {
                "date": "2013-06-26", 
                "length": 0
            }, 
            {
                "date": "2013-06-27", 
                "length": 0
            }, 
            {
                "date": "2013-06-28", 
                "length": 0
            }, 
            {
                "date": "2013-06-29", 
                "length": 0
            }, 
            {
                "date": "2013-06-30", 
                "length": 0
            }
        ], 
        "summary": {
            "total_time": 1082.0, 
            "total_length": 1558.22135, 
            "speed": 5.18447, 
            "total_calories": 82.45851
        }
    }, 
    "description": ""
}

3.用戶運動歷史

運動歷史記錄

健身歷史

Request:

POST
http://api.codoon.com/api/get_route_log

Params:

此處參數需要轉化爲 JSON 之後,放在 POST 消息體中再提交。

# product_id 爲本機 IMEI 號,寫個假的也可以 
"product_id" : productId , 

# 應該是最大返回結果
"count" : count , 

# 缺省值爲"", 格式不明
"excluded" : excluded ,

# 頁碼
"page" : page ,

# 是否爲概述信息, 1 概述信息, 0 詳情
"is_part" : isPart

Return :

以下爲設置 is_part = 1 的返回結果

{
    "status": "OK", 
    "data": [
        {
            "sports_type": 0, 
            "offset_text": "-0.001356,-0.006105", 
            "MaxToPreviousSpeed": 10.15968, 
            "history_version": 5, 
            "is_open": 1, 
            "goal_value": 0, 
            "stage_des": "", 
            "MaxAltitude": 152.88058, 
            "sportsMode": 0, 
            "total_calories": 2.38503, 
            "version": "3.3.5", 
            "location": "", 
            "total_length": 28.22135, 
            "activity_result": 0, 
            "total_time": 10, 
            "highest_speed_perkm": 0, 
            "start_time": "2013-06-14T16:02:31", 
            "custom_words": "", 
            "program_name": "", 
            "is_baidu": 0, 
            "last_of_program": 0, 
            "usettime_per_km": [], 
            "product_id": "23-f7ab41d522cf48cc57575d86e18a3e34", 
            "locationcount": 4, 
            "goal_type": 2, 
            "route_id": "cbccd39e-d4c8-11e2-9f4b-00163e0012d9", 
            "end_time": "2013-06-14T16:02:43", 
            "AverageSpeed": 10.15968, 
            "activity_type": 0
        }, 
        {
            "sports_type": 0, 
            "offset_text": "-0.001612,-0.006148", 
            "MaxToPreviousSpeed": 5.10312, 
            "history_version": 5, 
            "is_open": 1, 
            "goal_value": 0, 
            "stage_des": "", 
            "MaxAltitude": 83.49992, 
            "sportsMode": 0, 
            "total_calories": 17.67462, 
            "version": "3.3.5", 
            "location": "", 
            "total_length": 370, 
            "activity_result": 0, 
            "total_time": 332, 
            "highest_speed_perkm": 0, 
            "start_time": "2013-06-17T12:42:02", 
            "custom_words": "", 
            "program_name": "", 
            "is_baidu": 0, 
            "last_of_program": 0, 
            "usettime_per_km": [], 
            "product_id": "23-f7ab41d522cf48cc57575d86e18a3e34", 
            "locationcount": 34, 
            "goal_type": 2, 
            "route_id": "0c371e48-d709-11e2-a8a2-00163e020001", 
            "end_time": "2013-06-17T12:47:38", 
            "AverageSpeed": 4.0481, 
            "activity_type": 0
        }, 
        {
            "sports_type": 0, 
            "offset_text": "-0.001415,-0.005905", 
            "MaxToPreviousSpeed": 6.15464, 
            "history_version": 5, 
            "is_open": 1, 
            "goal_value": 0, 
            "stage_des": "", 
            "MaxAltitude": 76.74859, 
            "sportsMode": 0, 
            "total_calories": 62.39886, 
            "version": "3.3.5", 
            "location": "", 
            "total_length": 1160, 
            "activity_result": 0, 
            "total_time": 740, 
            "highest_speed_perkm": 643, 
            "start_time": "2013-06-24T18:39:10", 
            "custom_words": "", 
            "program_name": "", 
            "is_baidu": 0, 
            "last_of_program": 0, 
            "usettime_per_km": [
                {
                    "totalUseTime": 643000, 
                    "distance": 1, 
                    "speed": 5.63429, 
                    "useTime": 643000
                }
            ], 
            "product_id": "23-f7ab41d522cf48cc57575d86e18a3e34", 
            "locationcount": 100, 
            "goal_type": 2, 
            "route_id": "0e891f6c-dcbc-11e2-846f-00163e020001", 
            "end_time": "2013-06-24T18:51:34", 
            "AverageSpeed": 5.64779, 
            "activity_type": 0
        }
    ], 
    "description": ""
}

以下爲設置 is_part = 0 的返回結果,對比上面的數據,你會發現多了"data"."points"

{
    "status": "OK", 
    "data": [
        {
            "sports_type": 0, 
            "offset_text": "-0.001356,-0.006105", 
            "MaxToPreviousSpeed": 10.15968, 
            "history_version": 5, 
            "is_open": 1, 
            "goal_value": 0, 
            "stage_des": "", 
            "MaxAltitude": 152.88058, 
            "sportsMode": 0, 
            "total_calories": 2.38503, 
            "version": "3.3.5", 
            "location": "", 
            "total_length": 28.22135, 
            "activity_result": 0, 
            "total_time": 10, 
            "highest_speed_perkm": 0, 
            "start_time": "2013-06-14T16:02:31", 
            "custom_words": "", 
            "calories_per_m": [], 
            "program_name": "", 
            "is_baidu": 0, 
            "last_of_program": 0, 
            "usettime_per_km": [], 
            "product_id": "23-f7ab41d522cf48cc57575d86e18a3e34", 
            "locationcount": 4, 
            "goal_type": 2, 
            "route_id": "cbccd39e-d4c8-11e2-9f4b-00163e0012d9", 
            "points": [
                {
                    "topreviousenergy": 0, 
                    "distance": 0, 
                    "tostartdistance": 0, 
                    "elevation": 0, 
                    "topreviouscostTime": 0, 
                    "tostartcostTime": 0, 
                    "topreviousspeed": 0, 
                    "longitude": 116.36103, 
                    "latitude": 39.7732, 
                    "time_stamp": "2013-06-14T16:02:31", 
                    "type": 0
                }, 
                {
                    "topreviousenergy": 1.88562, 
                    "distance": 18.21924, 
                    "tostartdistance": 18.21924, 
                    "elevation": 152.88058, 
                    "topreviouscostTime": 2000, 
                    "tostartcostTime": 0, 
                    "topreviousspeed": -1, 
                    "longitude": 116.36117, 
                    "latitude": 39.77307, 
                    "time_stamp": "2013-06-14T16:02:32", 
                    "type": 0
                }, 
                {
                    "topreviousenergy": 0, 
                    "distance": 0, 
                    "tostartdistance": 8.42734, 
                    "elevation": 150.37465, 
                    "topreviouscostTime": 0, 
                    "tostartcostTime": 1000, 
                    "topreviousspeed": 0, 
                    "longitude": 116.36108, 
                    "latitude": 39.77313, 
                    "time_stamp": "2013-06-14T16:02:33", 
                    "type": 0
                }
            ], 
            "end_time": "2013-06-14T16:02:43", 
            "AverageSpeed": 10.15968, 
            "activity_type": 0
        }, 
        {
            "sports_type": 0, 
            "offset_text": "-0.001612,-0.006148", 
            "MaxToPreviousSpeed": 5.10312, 
            "history_version": 5, 
            "is_open": 1, 
            "goal_value": 0, 
            "stage_des": "", 
            "MaxAltitude": 83.49992, 
            "sportsMode": 0, 
            "total_calories": 17.67462, 
            "version": "3.3.5", 
            "location": "", 
            "total_length": 370, 
            "activity_result": 0, 
            "total_time": 332, 
            "highest_speed_perkm": 0, 
            "start_time": "2013-06-17T12:42:02", 
            "custom_words": "", 
            "calories_per_m": [
                3.26844, 
                2.71223, 
                3.97497, 
                3.7459, 
                3.53769
            ], 
            "program_name": "", 
            "is_baidu": 0, 
            "last_of_program": 0, 
            "usettime_per_km": [], 
            "product_id": "23-f7ab41d522cf48cc57575d86e18a3e34", 
            "locationcount": 34, 
            "goal_type": 2, 
            "route_id": "0c371e48-d709-11e2-a8a2-00163e020001", 
            "points": [
                {
                    "topreviousenergy": 0.49607, 
                    "distance": 11.44946, 
                    "tostartdistance": 52.73877, 
                    "elevation": 71.36803, 
                    "topreviouscostTime": 11000, 
                    "tostartcostTime": 56000, 
                    "topreviousspeed": 1.00906, 
                    "longitude": 116.36321, 
                    "latitude": 39.77255, 
                    "time_stamp": "2013-06-17T12:42:59", 
                    "type": 0
                }, 
                {
                    "topreviousenergy": 0.61301, 
                    "distance": 11.64821, 
                    "tostartdistance": 63.90634, 
                    "elevation": 65.04083, 
                    "topreviouscostTime": 7000, 
                    "tostartcostTime": 64000, 
                    "topreviousspeed": 1.02715, 
                    "longitude": 116.36307, 
                    "latitude": 39.77256, 
                    "time_stamp": "2013-06-17T12:43:07", 
                    "type": 0
                }, 
                {
                    "topreviousenergy": 0.29957, 
                    "distance": 10.89229, 
                    "tostartdistance": 74.34602, 
                    "elevation": 62.91219, 
                    "topreviouscostTime": 9000, 
                    "tostartcostTime": 73000, 
                    "topreviousspeed": 1.04158, 
                    "longitude": 116.36295, 
                    "latitude": 39.77258, 
                    "time_stamp": "2013-06-17T12:43:16", 
                    "type": 0
                } 
            ], 
            "end_time": "2013-06-17T12:47:38", 
            "AverageSpeed": 4.0481, 
            "activity_type": 0
        }, 
        {
            "sports_type": 0, 
            "offset_text": "-0.001415,-0.005905", 
            "MaxToPreviousSpeed": 6.15464, 
            "history_version": 5, 
            "is_open": 1, 
            "goal_value": 0, 
            "stage_des": "", 
            "MaxAltitude": 76.74859, 
            "sportsMode": 0, 
            "total_calories": 62.39886, 
            "version": "3.3.5", 
            "location": "", 
            "total_length": 1160, 
            "activity_result": 0, 
            "total_time": 740, 
            "highest_speed_perkm": 643, 
            "start_time": "2013-06-24T18:39:10", 
            "custom_words": "", 
            "calories_per_m": [
                4.70714, 
                5.23058, 
                4.80711, 
                6.65419, 
                4.56336, 
                4.82053, 
                4.1488, 
                5.04789, 
                4.78563, 
                5.40337, 
                4.53003, 
                6.21815
            ], 
            "program_name": "", 
            "is_baidu": 0, 
            "last_of_program": 0, 
            "usettime_per_km": [
                {
                    "totalUseTime": 643000, 
                    "distance": 1, 
                    "speed": 5.63429, 
                    "useTime": 643000
                }
            ], 
            "product_id": "23-f7ab41d522cf48cc57575d86e18a3e34", 
            "locationcount": 100, 
            "goal_type": 2, 
            "route_id": "0e891f6c-dcbc-11e2-846f-00163e020001", 
            "points": [
                {
                    "topreviousenergy": 0, 
                    "distance": 0, 
                    "tostartdistance": 0, 
                    "elevation": 0, 
                    "topreviouscostTime": 0, 
                    "tostartcostTime": 0, 
                    "topreviousspeed": 0, 
                    "longitude": 116.31056, 
                    "latitude": 39.90225, 
                    "time_stamp": "2013-06-24T18:39:10", 
                    "type": 0
                }, 
                {
                    "topreviousenergy": 0.57431, 
                    "distance": 10.24455, 
                    "tostartdistance": 10.24455, 
                    "elevation": 51.45178, 
                    "topreviouscostTime": 7000, 
                    "tostartcostTime": 6000, 
                    "topreviousspeed": 0, 
                    "longitude": 116.31064, 
                    "latitude": 39.90217, 
                    "time_stamp": "2013-06-24T18:39:17", 
                    "type": 0
                }, 
                {
                    "topreviousenergy": 0, 
                    "distance": 0, 
                    "tostartdistance": 792.45592, 
                    "elevation": 49.47266, 
                    "topreviouscostTime": 0, 
                    "tostartcostTime": 730000, 
                    "topreviousspeed": 0, 
                    "longitude": 116.30484, 
                    "latitude": 39.89663, 
                    "time_stamp": "2013-06-24T18:51:23", 
                    "type": 0
                }
            ], 
            "end_time": "2013-06-24T18:51:34", 
            "AverageSpeed": 5.64779, 
            "activity_type": 0
        }
    ], 
    "description": ""
}

單次運動軌跡

健身歷史

Request:

POST
http://api.codoon.com/api/get_single_log

Params:

此處參數來自於 運動歷史記錄 API 返回結果中的 "data"."route_id"

此處參數需要轉化爲 JSON 之後,放在 POST 消息體中再提交。

"route_id" : routeId

Return :

考慮到數據量的問題,此數據中 "data"."points" 節點數據有所刪減。

{
    "status": "OK", 
    "data": {
        "sports_type": 0, 
        "offset_text": "-0.001612,-0.006148", 
        "MaxToPreviousSpeed": 5.10312, 
        "history_version": 5, 
        "is_open": 1, 
        "goal_value": 0, 
        "stage_des": "", 
        "MaxAltitude": 83.49992, 
        "sportsMode": 0, 
        "total_calories": 17.67462, 
        "version": "3.3.5", 
        "location": "", 
        "total_length": 370, 
        "activity_result": 0, 
        "total_time": 332, 
        "highest_speed_perkm": 0, 
        "start_time": "2013-06-17T12:42:02", 
        "custom_words": "", 
        "calories_per_m": [
            3.26844, 
            2.71223, 
            3.97497, 
            3.7459, 
            3.53769
        ], 
        "program_name": "", 
        "is_baidu": 0, 
        "last_of_program": 0, 
        "usettime_per_km": [], 
        "product_id": "23-f7ab41d522cf48cc57575d86e18a3e34", 
        "goal_type": 2, 
        "route_id": "0c371e48-d709-11e2-a8a2-00163e020001", 
        "points": [
            {
                "topreviousenergy": 0, 
                "distance": 0, 
                "tostartdistance": 0, 
                "elevation": 0, 
                "topreviouscostTime": 0, 
                "tostartcostTime": 0, 
                "topreviousspeed": 0, 
                "longitude": 116.36381, 
                "latitude": 39.77266, 
                "time_stamp": "2013-06-17T12:42:02", 
                "type": 0
            }, 
            {
                "topreviousenergy": 0.69659, 
                "distance": 14.08985, 
                "tostartdistance": 14.08985, 
                "elevation": 83.49992, 
                "topreviouscostTime": 12000, 
                "tostartcostTime": 11000, 
                "topreviousspeed": 0, 
                "longitude": 116.36366, 
                "latitude": 39.7727, 
                "time_stamp": "2013-06-17T12:42:14", 
                "type": 0
            }
        ], 
        "end_time": "2013-06-24T18:51:34", 
        "AverageSpeed": 5.64779, 
        "activity_type": 0
    }, 
    "description": ""
}

4. 智能配件相關 API(疑似)

以下API疑似和智能配件有關,因爲手裏暫時沒有,所以沒法確信。

如果哪位有了解,或者有帶智能設備賬號願意分享一下,請直接和我聯繫,以將下面的API補充完整。謝謝。

mobile_portraits

Request:

GET
http://api.codoon.com/api/get_mobile_portraits

Params:

Return :

{
    "status": "OK", 
    "data": {
        "portraits_l": [], 
        "portraits_x": []
    }, 
    "description": ""
}

tracker_goal

Request:

GET
http://api.codoon.com/api/get_tracker_goal

Params:

Return :

Step的值 70000 是一週步行目標。

{
    "status": "OK", 
    "data": {
        "status": "OK", 
        "data": {
            "type": "steps", 
            "value": 70000
        }, 
        "description": ""
    }, 
    "description": ""
}

tracker_summary

Request:

POST
http://api.codoon.com/api/get_tracker_summary

Params:

此處參數需要轉化爲 JSON 之後,放在 POST 消息體中再提交。

# 截止日期,日期格式如:2013-06-30
"date_end" : endDate, 

# 整數,向前回溯多少天。
"days_back" : daysBack

Return :

以下返回結果爲 date_end = 2013-06-30 , days_back = 3

{
    "status": "OK", 
    "data": [
        {
            "status": "null", 
            "calories": 0, 
            "meters": 0, 
            "activity": 0.0, 
            "date": "2013-06-28", 
            "steps": 0, 
            "minutes": 0
        }, 
        {
            "status": "null", 
            "calories": 0, 
            "meters": 0, 
            "activity": 0.0, 
            "date": "2013-06-29", 
            "steps": 0, 
            "minutes": 0
        }, 
        {
            "status": "null", 
            "calories": 0, 
            "meters": 0, 
            "activity": 0.0, 
            "date": "2013-06-30", 
            "steps": 0, 
            "minutes": 0
        }
    ], 
    "description": ""
}

tracker_data

Request:

POST
http://api.codoon.com/api/get_tracker_data

Params:

此處參數需要轉化爲 JSON 之後,放在 POST 消息體中再提交。

# 日期格式如:2013-06-01
"the_day" : datestr

Return :

{
    "status": "OK", 
    "data": {
        "data": {
            "meters": [
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0
            ], 
            "sports_duration": 0, 
            "steps": [
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0
            ], 
            "calories": [
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0, 
                0
            ], 
            "sports_complete": 0
        }
    }, 
    "description": ""
}

sleep_data

想都不用想,必然是給咕咚手環準備的,睡眠 API

Request:

POST
http://api.codoon.com/api/get_sleep_data

Params:

此處參數需要轉化爲 JSON 之後,放在 POST 消息體中再提交。

# 日期格式如:2013-06-01
"the_day" : datestr

Return :

{
    "status": "OK", 
    "data": {
        "data": {
            "total_minutes": 0, 
            "light_minutes": 0, 
            "deep_minutes": 0, 
            "detail": [
                -1, 
                -1, 
                -1, 
                -1, 
                -1, 
                -1, 
                -1, 
                -1, 
                -1, 
                -1, 
                -1, 
                -1, 
                -1, 
                -1, 
                -1, 
                -1, 
                -1, 
                -1, 
                -1, 
                -1, 
                -1, 
                -1, 
                -1, 
                -1, 
                -1, 
                -1, 
                -1, 
                -1, 
                -1, 
                -1, 
                -1, 
                -1, 
                -1, 
                -1, 
                -1, 
                -1, 
                -1, 
                -1, 
                -1, 
                -1, 
                -1, 
                -1, 
                -1, 
                -1, 
                -1, 
                -1, 
                -1, 
                -1, 
                -1, 
                -1, 
                -1, 
                -1, 
                -1, 
                -1, 
                -1, 
                -1, 
                -1, 
                -1, 
                -1, 
                -1, 
                -1, 
                -1, 
                -1, 
                -1, 
                -1, 
                -1, 
                -1, 
                -1, 
                -1, 
                -1, 
                -1, 
                -1
            ], 
            "sleep_complete": 0.0
        }
    }, 
    "description": ""
}

5. 其他 API

約跑

查看周邊的跑友,需要輸入用戶當前的經緯度信息。

Request:

POST
http://api.codoon.com/api/people_surrounding

Params:

此處參數需要轉化爲 JSON 之後,放在 POST 消息體中再提交。

# 地理位置,形式爲兩個浮點數組成的字符串。如:"36.5,112.32"
"point" : point , 

# 性別 : 1 Male, 0 Female. Gender is not 0 or 1, will return all
"gender" : gender , 

# 缺省設置爲 ""
# Bug : if hobby is Chinese , will return 500 error, :(
"hobby" : hobby ,

# 整數,頁碼 
"page" : page 

Return :

下面的數據做了部分刪減。

{
    "status": "OK", 
    "data": [
        {
            "feed": "\u6211\u7528#\u5495\u549a\u8fd0\u52a8+#\u5b8c\u6210\u8d70\u8def3.00\u516c\u91cc\uff0c\u7528\u65f631\u5206\u949f\uff0c\u901f\u5ea65.71\u516c\u91cc/\u5c0f\u65f6\uff0c200.10\u5927\u5361\u3002", 
            "distance": 2273.60153, 
            "portrait_l": "http://static.codoon.com/image/default_header/female_l.png", 
            "user_id": "58aa2aad-b470-4437-8984-fe02691c7b3d", 
            "feed_time": "2013-07-06T22:22:05", 
            "point": [
                36.50452, 
                112.34037
            ], 
            "gender": "1", 
            "user_icon": "http://static.codoon.com/image/default_header/female_m.png", 
            "mobile_portraits_x": [], 
            "nick": "493068814", 
            "descroption": "", 
            "location": "\u5317\u4eac", 
            "portrait_x": "http://static.codoon.com/image/default_header/female_x.png", 
            "time": "2013-07-06T22:23:40.524956", 
            "mobile_portraits_l": [], 
            "hobby": "\u5176\u4ed6", 
            "feed_pic": "http://img3.codoon.com/gps85677695463441cb9a4c709a838b11a1!240m0"
        },          
        {
            "feed": "\u6211\u5728\u300c\u664b\u57ce\u300d\u7528#\u5495\u549a\u8fd0\u52a8+#\u5b8c\u6210\u8d70\u8def2.55\u516c\u91cc\uff0c\u7528\u65f641\u5206\u949f\uff0c\u901f\u5ea63.72\u516c\u91cc/\u5c0f\u65f6\uff0c191.60\u5927\u5361\u3002", 
            "distance": 36825.33643, 
            "portrait_l": "http://img3.codoon.com/portraitde99214b5a6145bbb253c7e233a65d03!220m220", 
            "user_id": "8f381494-52aa-4015-bb31-f644d9486553", 
            "feed_time": "2013-07-15T10:59:56", 
            "point": [
                35.69323, 
                112.19228
            ], 
            "gender": "0", 
            "user_icon": "http://img3.codoon.com/portraitde99214b5a6145bbb253c7e233a65d03!50m50", 
            "mobile_portraits_x": [], 
            "nick": "\u55e8696", 
            "descroption": "", 
            "location": "\u5317\u4eac", 
            "portrait_x": "http://img3.codoon.com/portraitde99214b5a6145bbb253c7e233a65d03!640m640", 
            "time": "2013-07-15T10:59:56.101487", 
            "mobile_portraits_l": [], 
            "hobby": "\u8dd1\u6b65", 
            "feed_pic": "http://img3.codoon.com/gpsf2996fd5d5d840d087f97e8857ddc5e7!240m0"
        }
    ], 
    "description": ""
}

運動計劃描述

運動計劃列表

Request:

POST
http://api.codoon.com/api/sports_program_manifest_for_codoon

Params:

此處參數需要轉化爲 JSON 之後,放在 POST 消息體中再提交。

# 被**排除在外**的 Program ID 列表,多個ID之間可以用逗號分隔,如“3,4”。
# 這個參數命名比較詭異:P
"ids" : programIds

Return :

{
    "status": "OK", 
    "data": [
        {
            "publish_time": "2012-05-25T15:21:28", 
            "des": "\u8fc8\u51fa\u5065\u5eb7\u751f\u6d3b\u7684\u7b2c\u4e00\u6b65\uff0c\u4ece\u8d70\u8def\u8fd0\u52a8\u5f00\u59cb\uff01\n\u8be5\u8ba1\u5212\u6301\u7eed\u56db\u5468\uff0c\u6bcf\u5468\u8fd0\u52a83\u6b21", 
            "id": 3, 
            "name": "\u8d70\u8def\u8fd0\u52a8\u521d\u7ea7\u8ba1\u5212"
        }, 
        {
            "publish_time": "2012-05-25T15:21:56", 
            "des": "\u6b64\u8ba1\u5212\u5171\u56db\u5468\uff0c\u6bcf\u54684\u6b21\u8fd0\u52a8", 
            "id": 4, 
            "name": "\u5f00\u59cb\u6162\u8dd1\u8fd0\u52a8\u5427\uff01"
        }, 
        {
            "publish_time": "2012-05-25T15:21:56", 
            "des": "\u6b64\u8ba1\u5212\u5171\u516d\u5468\uff0c\u6bcf\u54684\u6b21\u8fd0\u52a8", 
            "id": 5, 
            "name": "\u6162\u8dd1\u8fd0\u52a8\u8fdb\u9636\u8ba1\u5212"
        }
    ], 
    "description": ""
}

運動計劃細節

Codoon 運動計劃詳情

Request:

POST
http://api.codoon.com/api/sports_program_detail

Params:

此處參數需要轉化爲 JSON 之後,放在 POST 消息體中再提交。

"id" : programId 

Return :

"data"."program_detail"."procedure"."detail" 中的 "t" 代表運動類型,"d" 代表持續幾分鐘:

t 的取值包括: j 快走,s 慢走,c 放鬆,m 慢跑,n 走路等。

{
    "status": "OK", 
    "data": {
        "version": 1, 
        "id": 3, 
        "program_detail": {
            "small_unit": "day", 
            "big_unit": "week", 
            "procedure": [
                [
                    {
                        "des": "\u5feb\u8d705\u5206\u949f\uff1b\u6162\u8d703\u5206\u949f\uff1b\u5feb\u8d705\u5206\u949f\uff1b\u653e\u677e\u8fd0\u52a81\u5206\u949f", 
                        "detail": [
                            {
                                "t": "j", 
                                "d": 5
                            }, 
                            {
                                "t": "s", 
                                "d": 3
                            }, 
                            {
                                "t": "j", 
                                "d": 5
                            }, 
                            {
                                "t": "c", 
                                "d": 1
                            }
                        ]
                    }, 
                    {
                        "des": "\u4f11\u606f", 
                        "detail": []
                    }, 
                    {
                        "des": "\u5feb\u8d705\u5206\u949f\uff1b\u6162\u8d703\u5206\u949f\uff1b\u5feb\u8d705\u5206\u949f\uff1b\u653e\u677e\u8fd0\u52a81\u5206\u949f", 
                        "detail": [
                            {
                                "t": "j", 
                                "d": 5
                            }, 
                            {
                                "t": "s", 
                                "d": 3
                            }, 
                            {
                                "t": "j", 
                                "d": 5
                            }, 
                            {
                                "t": "c", 
                                "d": 1
                            }
                        ]
                    }, 
                    {
                        "des": "\u4f11\u606f", 
                        "detail": []
                    }, 
                    {
                        "des": "\u5feb\u8d705\u5206\u949f\uff1b\u6162\u8d703\u5206\u949f\uff1b\u5feb\u8d705\u5206\u949f\uff1b\u653e\u677e\u8fd0\u52a81\u5206\u949f", 
                        "detail": [
                            {
                                "t": "j", 
                                "d": 5
                            }, 
                            {
                                "t": "s", 
                                "d": 3
                            }, 
                            {
                                "t": "j", 
                                "d": 5
                            }, 
                            {
                                "t": "c", 
                                "d": 1
                            }
                        ]
                    }, 
                    {
                        "des": "\u4f11\u606f", 
                        "detail": []
                    }, 
                    {
                        "des": "\u4f11\u606f", 
                        "detail": []
                    }
                ], 
                [
                    {
                        "des": "\u5feb\u8d706\u5206\u949f\uff1b\u6162\u8d703\u5206\u949f\uff1b\u5feb\u8d707\u5206\u949f\uff1b\u653e\u677e\u8fd0\u52a81\u5206\u949f", 
                        "detail": [
                            {
                                "t": "j", 
                                "d": 6
                            }, 
                            {
                                "t": "s", 
                                "d": 3
                            }, 
                            {
                                "t": "j", 
                                "d": 7
                            }, 
                            {
                                "t": "c", 
                                "d": 1
                            }
                        ]
                    }, 
                    {
                        "des": "\u4f11\u606f", 
                        "detail": []
                    }, 
                    {
                        "des": "\u5feb\u8d706\u5206\u949f\uff1b\u6162\u8d703\u5206\u949f\uff1b\u5feb\u8d707\u5206\u949f\uff1b\u653e\u677e\u8fd0\u52a81\u5206\u949f", 
                        "detail": [
                            {
                                "t": "j", 
                                "d": 6
                            }, 
                            {
                                "t": "s", 
                                "d": 3
                            }, 
                            {
                                "t": "j", 
                                "d": 7
                            }, 
                            {
                                "t": "c", 
                                "d": 1
                            }
                        ]
                    }, 
                    {
                        "des": "\u4f11\u606f", 
                        "detail": []
                    }, 
                    {
                        "des": "\u5feb\u8d706\u5206\u949f\uff1b\u6162\u8d703\u5206\u949f\uff1b\u5feb\u8d707\u5206\u949f\uff1b\u653e\u677e\u8fd0\u52a81\u5206\u949f", 
                        "detail": [
                            {
                                "t": "j", 
                                "d": 6
                            }, 
                            {
                                "t": "s", 
                                "d": 3
                            }, 
                            {
                                "t": "j", 
                                "d": 7
                            }, 
                            {
                                "t": "c", 
                                "d": 1
                            }
                        ]
                    }, 
                    {
                        "des": "\u4f11\u606f", 
                        "detail": []
                    }, 
                    {
                        "des": "\u4f11\u606f", 
                        "detail": []
                    }
                ], 
                [
                    {
                        "des": "\u5feb\u8d708\u5206\u949f\uff1b\u6162\u8d703\u5206\u949f\uff1b\u5feb\u8d708\u5206\u949f\uff1b\u653e\u677e\u8fd0\u52a81\u5206\u949f", 
                        "detail": [
                            {
                                "t": "j", 
                                "d": 8
                            }, 
                            {
                                "t": "s", 
                                "d": 3
                            }, 
                            {
                                "t": "j", 
                                "d": 8
                            }, 
                            {
                                "t": "c", 
                                "d": 1
                            }
                        ]
                    }, 
                    {
                        "des": "\u4f11\u606f", 
                        "detail": []
                    }, 
                    {
                        "des": "\u5feb\u8d708\u5206\u949f\uff1b\u6162\u8d703\u5206\u949f\uff1b\u5feb\u8d708\u5206\u949f\uff1b\u653e\u677e\u8fd0\u52a81\u5206\u949f", 
                        "detail": [
                            {
                                "t": "j", 
                                "d": 8
                            }, 
                            {
                                "t": "s", 
                                "d": 3
                            }, 
                            {
                                "t": "j", 
                                "d": 8
                            }, 
                            {
                                "t": "c", 
                                "d": 1
                            }
                        ]
                    }, 
                    {
                        "des": "\u4f11\u606f", 
                        "detail": []
                    }, 
                    {
                        "des": "\u5feb\u8d708\u5206\u949f\uff1b\u6162\u8d703\u5206\u949f\uff1b\u5feb\u8d708\u5206\u949f\uff1b\u653e\u677e\u8fd0\u52a81\u5206\u949f", 
                        "detail": [
                            {
                                "t": "j", 
                                "d": 8
                            }, 
                            {
                                "t": "s", 
                                "d": 3
                            }, 
                            {
                                "t": "j", 
                                "d": 8
                            }, 
                            {
                                "t": "c", 
                                "d": 1
                            }
                        ]
                    }, 
                    {
                        "des": "\u4f11\u606f", 
                        "detail": []
                    }, 
                    {
                        "des": "\u4f11\u606f", 
                        "detail": []
                    }
                ], 
                [
                    {
                        "des": "\u5feb\u8d7010\u5206\u949f\uff1b\u6162\u8d703\u5206\u949f\uff1b\u5feb\u8d7010\u5206\u949f\uff1b\u653e\u677e\u8fd0\u52a81\u5206\u949f", 
                        "detail": [
                            {
                                "t": "j", 
                                "d": 10
                            }, 
                            {
                                "t": "s", 
                                "d": 3
                            }, 
                            {
                                "t": "j", 
                                "d": 10
                            }, 
                            {
                                "t": "c", 
                                "d": 1
                            }
                        ]
                    }, 
                    {
                        "des": "\u4f11\u606f", 
                        "detail": []
                    }, 
                    {
                        "des": "\u5feb\u8d7010\u5206\u949f\uff1b\u6162\u8d703\u5206\u949f\uff1b\u5feb\u8d7010\u5206\u949f\uff1b\u653e\u677e\u8fd0\u52a81\u5206\u949f", 
                        "detail": [
                            {
                                "t": "j", 
                                "d": 10
                            }, 
                            {
                                "t": "s", 
                                "d": 3
                            }, 
                            {
                                "t": "j", 
                                "d": 10
                            }, 
                            {
                                "t": "c", 
                                "d": 1
                            }
                        ]
                    }, 
                    {
                        "des": "\u4f11\u606f", 
                        "detail": []
                    }, 
                    {
                        "des": "\u5feb\u8d7010\u5206\u949f\uff1b\u6162\u8d703\u5206\u949f\uff1b\u5feb\u8d7010\u5206\u949f\uff1b\u653e\u677e\u8fd0\u52a81\u5206\u949f", 
                        "detail": [
                            {
                                "t": "j", 
                                "d": 10
                            }, 
                            {
                                "t": "s", 
                                "d": 3
                            }, 
                            {
                                "t": "j", 
                                "d": 10
                            }, 
                            {
                                "t": "c", 
                                "d": 1
                            }
                        ]
                    }, 
                    {
                        "des": "\u4f11\u606f", 
                        "detail": []
                    }, 
                    {
                        "des": "\u4f11\u606f", 
                        "detail": []
                    }
                ]
            ]
        }, 
        "hint": {
            "detect_time": 2, 
            "min_speed": 7, 
            "detect_bar": 4
        }
    }, 
    "description": ""
}

空氣質量

根據輸入的城市名,獲得空氣質量信息。

Request:

POST
http://api.codoon.com/api/city_name

Params:

此處參數需要轉化爲 JSON 之後,放在 POST 消息體中再提交。

# 城市名稱,如: "北京"
"city_name" : cityName

Return :

{
    "status": "OK", 
    "data": {
        "pm10": {
            "city_name": "\u5317\u4eac", 
            "update_time": "2013-07-18T11:00:00", 
            "des": "\u4e2d\u5ea6\u6c61\u67d3", 
            "suggestion": "\u4e0d\u592a\u9002\u5b9c\u8fd0\u52a8", 
            "value": 162.0
        }, 
        "pm25": {
            "city_name": "\u5317\u4eac", 
            "update_time": "2013-07-18T11:00:00", 
            "des": "\u91cd\u5ea6\u6c61\u67d3", 
            "suggestion": "\u4e0d\u9002\u5b9c\u8fd0\u52a8", 
            "value": 177.0
        }
    }, 
    "description": ""
}

結束 :D


原始MD文檔位置:https://github.com/iascchen/VisHealth/blob/master/docs/how-to-fetch-codoon-data-unofficial-api_all.md

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章