获取咕咚运动移动应用中的数据——非官方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:

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ios and Android

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值