公告:为了更好的为大家服务,同时保证用户的数据安全,我们已经对通信协议进行了升级,请大家在号前升级协议,使用替换。
本文档用于引导第三方开放者在自己的应用中集成咕咚的帐号和该帐号所产生的数据。开发者通过认证鉴权接口从咕咚网获取咕咚用户的认证令牌,绑定认证令牌后。
即可通过此令牌访问咕咚的数据,并且在注册回调接口后还能在用户上传数据后得到实时的通知。
咕咚开放API的鉴权认证是基于OAuth2.0协议,如果对协议不了解可以参考协议官方网站
接入API需要申请咕咚网接入的AppKey和AppSecret。因为咕咚暂时没有开放申请,所以如果有接入的需求,请将您应用的简介和公司或者个人信息通过邮件发送到
接入测试可以使用测试的AppKey和AppSecret:app_key 3d1e29f42782bcb058632, app_secret 3d1e29f42782bcb058632
第三方应用通过认证授权接口获取咕咚用户的授权令牌,从而得到通过API读写数据的权限。大体过程如下图
第一步:获取Access Code
/authorize
浏览器Redirect
client_id:应用程序标识,就是AppKey
redirect_uri:获取返回的AccessCode的转跳地址,必须和注册时提交的地址一致
response_type:恒等于code
scope:申请接口范围(可选参数)现在只开放user和sports,多个权限用逗号隔开
示例如下:
/authorize?client_id=xxx&redirect_uri=http%3A%2F%%2Fget_code&response_type=code&scope=user,sports
将参数urlencode后放在url的参数部分,然后转跳到这个地址上。如果用户在咕咚网已经登录,就会显示授权页面,点击确认后会转跳到参数redirect_uri所指定的地址
AccessCode通过参数code返回,示例如下:
/get_code?code=xxxxxxxxxxxxxxxxxxxx
AccessCode是一个很重要的返回值,你需要将其存储起来供下一次调用使用。
第二步:获取Access Token(授权令牌)
在获取到AccessCode之后,就可以通过这个code获取授权令牌(Access Token)了。获取Access Token需要用之前获取的Access Code作为参数发起一次Http请求,
由于客户端发起容易被截获,建议在服务端发起这个请求。
HTTP HEADER
Key:Authorization&&Value:"Basic "+base64("AppKey:AppSecret")
client_id:应用程序标识,就是AppKey
grant_type:恒为authorization_code
redirect_uri:获取返回的AccessCode的转跳地址,必须和注册时提交的地址一致
code:在上一步获取的Access Code
scope:申请接口范围(可选参数)现在只开放user和sports,多个权限用逗号隔开
下面是一个Python的例子
>>>import requests
>>>import base64
>>>client_key = "xxxxx"
>>>client_secret = "xxxxx"
>>>params = dict(
client_id="xxxxx",
grant_type="authorization_code",
code="xxxxxxxxxxxxxxxxxxxxxx",
redirect_uri="/get_code",
scope="user,sports",
>>>headers = {'Authorization': 'Basic %s' % base64.b64encode(client_key + ":" + client_secret)}
>>>response = requests.post("/token",data=params, headers=headers)
>>>print response.text
{"access_token": {access_token}, "token_type": "bearer", "expire_in": 3600, "refresh_token": {refresh_token}, "scope": {scope}}
返回json对象的格式:
access_token
授权令牌,用于访问API接口的时候使用
token_type
恒为Bearer
距过期还剩多少秒
refresh_token
重新获取AccessToken的刷新授权码
授权允许访问的接口范围
Access Token(授权令牌)过期获取新令牌的过程
在获取授权令牌的时候,API授权接口会返回一个Refresh Token(刷新令牌)的值,这个值需要存起来,当授权令牌过期后,可以通过这个值去获取一个新的授权令牌,
从而不必再重复第一步从获取Access Code开始。执行这个过程的方式和第二步类似,地址相同,只是参数有所区别。
HTTP HEADER
Key:Authorization&&Value:"Basic "+base64("AppKey:AppSecret")
client_id:应用程序标识,就是AppKey
grant_type:恒为refresh_token
refresh_token:在上一次获取授权令牌的时候获取的refresh_token
scope:申请接口范围(可选参数)现在只开放user和sports,多个权限用逗号隔开
下面是一个Python的例子
>>>import requests
>>>import base64
>>>client_key = "xxxxx"
>>>client_secret = "xxxxx"
>>>params = dict(
client_id="xxxxx",
grant_type="恒为refresh_token",
refresh_token="xxxxxxxxxxxxxxxxxxxxxx",
scope="user,sports",
>>>headers = {'Authorization': 'Basic %s' % base64.b64encode(client_key + ":" + client_secret)}
>>>response = requests.post("/token",data=params, headers=headers)
>>>print response.text
{"access_token": {access_token}, "token_type": "bearer", "expire_in": 3600, "refresh_token": {refresh_token}, "scope": {scope}}
返回值格式同第二步
在获取到用户的授权令牌后,第三方应用就可以使用这个令牌来访问用户的数据了,咕咚开放API暂时只支持Bearer这一种方式,
只需要将Access Token放到Http Header的Authorization键中即可
/api/method_name
Http Header:
Authorization:Bearer {Access Token}
接口所需参数均为命名参数,需要将参数组合成一个json对象,放在body里
下面是一个Python的示例
>>>import requests
>>>headers = {"Authorization": "Bearer %s" % accesstoken}
>>>post_data = {...}
>>>response = requests.request('POST', "/api/api_func", data=json.dumps(post_data), headers=headers)
>>>print response.content
{rs:True,...}
返回值是一个json对象,根据不同的接口,返回值有所区别,将在API部分详细说明
API详细说明
API可以通过Http协议的GET和POST方法访问,如果没有注明用GET,否则建议使用POST方法
1.获取用户信息
Method Name
verify_credentials
API参数(Body)
返回值说明
"id": "String",
"domain": "String",
"certificatename": "String",
// 暂时没有使用的属性
"get_icon_large": "String",
// 头像(大)
"get_icon_middle": "String",
// 头像(中)
"get_icon_small": "String",
// 头像(小)
"get_icon_tiny": "String",
// 头像(超小)
"get_icon_xlarge": "String",
// 头像(超大)
"mobile_portraits_l": ["String"...]
// 手机头像,220x220
"mobile_portraits_x": ["String"...]
// 手机头像,640x640
"nick": "String",
"followings": Int,
"followers": Int,
"location": "String",
"weight": Int,
"height": Int,
"realname": "String",
// 真实姓名
"birthday": {"y": Int, "m": Int, "d": Int},
"address": "String",
"gender": Int,
// 性别 0: 女, 1: 男
"hobby":"String"
"descroption": "String",
// 运动宣言
"routes_count": Int,
// 上传过的路线条数
"week_goal_type": "String",
// 周目标类型
"week_goal_value": Int
// 周目标的值
2.修改用户属性
Method Name
update_profile
API参数(Body)
"height": Int,
"weight": Int,
"gender": Int,
// 性别 0: 女, 1: 男
"nick": "String",
"hobby": "String",
"img_data": "String",
// base64编码后的头像文件
"img_name": "String",
// 头像文件名,主要是需要用到后缀来区别图片格式
"descroption": "String", // 运动宣言(注意此处有拼写问题,因为一个美丽的错误)
返回值说明
"status": "OK",
// 处理结果,恒为ok
"portrait_l": "String", // 220的头像URL
"portrait_x": "String", // 640的头像URL
"description": "String"
'error_code': code,//1: u'昵称重复', 2: u'更新成功', 3: u'设置一个合理的步长吧', 4: u'文件类型不支持', 5: u"昵称只能是2~12位中文、字母、数字、下划线或减号!", 6: u'昵称不能含有敏感词!', 7:u'签名不能含有敏感词!',
8: u'信息审核中,不可编辑'
'vipicon_l': '',
'vipicon_m': '',
'vipicon_s': '',
'viplabel_desc': ''
3.获取运动目标
Method Name
get_tracker_goal
API参数(Body)
返回值说明
"status": "OK",
// 执行状态
"descroption": "",
// 状态描述,status不为OK的时候是错误信息描述
"type":"steps",
// 运动目标类型,可选值范围steps, meters, calories
"value": Int
// 每日运动目标的值
4.设置运动目标
Method Name
change_tracker_goal
API参数(Body)
"goal_type": "String" //运动目标类型,可选值范围steps, meters, calories
"goal_value": Int
//实际数值
返回值说明
"status": "OK",
// 执行状态
"descroption": "",
// 状态描述,status不为OK的时候是错误信息描述
5.获取身体数据(体重历史)
Method Name
get_body_log
API参数(Body)
返回值说明
"status": "OK",
// 节约传输数据,使用数组存储,需要按位置获取数据。如果无此数据则为null
// 对应身体数据的日期
// 体重,公斤
// 身高,厘米
// 体脂率,百分比,最大100
// 目标体重
6.更新身体管理数据(修改体重和体重目标)
Method Name
post_body_data
API参数(Body)
// 可一次性上传多条
"weight": "number",
// 体重,公斤
"height": "number",
// 身高,厘米
"weight_goal": "number", // 目标体重
"fatrate": "number",
// 体脂率,百分比,最大100
"date": "",
// 对应身体数据的日期
"update_time": " 17:00:30",
// 设置此数据的时刻,新的数据会把旧的覆盖掉
返回值说明
"status": "OK",
7.获取追踪器按天汇总数据
Method Name
get_tracker_summary
API参数(Body)
"date_end": "",
// 获取时间段的最后一天
"days_back": Int,
// 需要获取的天数,最大30天
返回值说明
"status": "OK",
"status": "null",
// 运动状态 null不动 low轻微 proper适量 over过于
"calories": 0,
// 消耗卡路里
"meters": 0,
// 运动距离
"activity": 0,
// 运动量 (卡路里/体重)
"steps": 0,
"minutes": 0
// 运动时常
"description": ""
8.获取追踪器单日数据(20分钟一段)
Method Name
get_tracker_data
API参数(Body)
"the_day": "String", 例
返回值说明
"status": true,
//返回状态
"meters": [1,2,3, ...],
//每二十分钟的运动距离
"sports_duration": 120,
//运动持续时间
"steps": [1,2,3, ...],
//每二十分钟运动的步数
"calories": [1,2,3, ...], //每二十分钟消耗的卡路里数
"sports_complete": Int
//运动完成度
8a.获取追踪器单日数据(10分钟一段)
Method Name
api_tracker_oneday
API参数(Body)
"the_day": "String", 例
返回值说明
"status": true,
//返回状态
"meters": [1,2,3, ...],
//每十分钟的运动距离
"sports_duration": 120,
//运动持续时间
"steps": [1,2,3, ...],
//每十分钟运动的步数
"calories": [1,2,3, ...], //每十分钟消耗的卡路里数
"sports_complete": Int
//运动完成度
9.获取追踪器睡眠信息(20分钟一段)
Method Name
get_sleep_data
API参数(Body)
"the_day": "String", 例
返回值说明
"status":"OK",
//返回状态
"deep_minutes":60,
//深睡时间
"sleep_complete":0.75,
//睡眠完成度
"total_minutes": 80,
//总睡眠时间
"light_minutes": 20,
//浅睡时间
"detail": [-1, -1, ...] //每二十分钟睡眠详细情况
"description":""
9a.获取追踪器睡眠信息(200秒一段)
Method Name
get_sleep_data_oneday
API参数(Body)
"the_day": "String", 例
返回值说明
"status":"OK",
//返回状态
"deep_minutes":60,
//深睡时间
"sleep_complete":0.75,
//睡眠完成度
"total_minutes": 80,
//总睡眠时间
"light_minutes": 20,
//浅睡时间
"detail": [-1, -1, ...] //每200秒睡眠详细情况
-1表示没有数据 , 深睡 3.3*3 以下 , 浅睡 3.3-16.6, 唤醒 16.6 以上
"description":""
10.获取追踪器总完成度
Method Name
get_sport_complete_rate
POST获取追踪器睡眠信息
API参数(Body)
"the_day": "String", 例
返回值说明
"status":"OK",
//返回结果
"sports_complete":0, //运动目标完成率
"sleep_complete":50
//睡眠目标完成率
"description":""
11.获取上传线路数据
Method Name
get_route_by_id
API参数(Body)
"route_id": "String",// 这个值通过通知接口获取
返回值说明
"status": "OK",
// OK表示请求成功
"total_time": Int,
// 运动持续时间,单位分钟
"upload_time": String,
// 上传的时间,比如 " 18:02:58"
"total_calories": Float,
// 消耗卡路里
"start_time": String,
// 运动开始时间,比如 " 17:40:14"
"sports_type": String,
// 运动方式 比如 走路、跑步、骑行
"route_image": String,
// 线路图片地址
"activity_result": Int,
// 是否达成目标 0 未完成, 1 完成
"end_time": String,
// 完成运动时间,比如" 17:41:07"
"total_length": Float,
// 运动距离
"activity_type": String,
// 运动类型 比如:普通模式、目标模式、挑战模式、计划模式
"goal_type": String,
// 运动目标类型 比如:距离、时间、卡路里
"goal_value": Float
// 运动目标值
"description": ""
返回错误码
区分错误和正确的请求通过Http的状态码就ok了,如果API请求返回200,一般意义上认为是请求成功了的,但是有的业务是异步的,所以最好通过status字段再判断一次。
invalid_request
在HTTP的Header里没有找到认证信息
invalid_token
当Token失效的时候返回这个错误
insufficient_scope
当请求的scope不在允许的范围内时返回此错误
invalid_request
参数缺失,参数错误,访问方法错误的时候返回此错误
unauthorized_client
client_ID不是有效的client_ID
access_denied
授权发生异常时返回此错误
unsupported_responseType
发起请求的Method不支持的时候返回此错误
开发者在注册APP的时候,需要提供一个回调地址,当用户上传数据的时候,API会即时调用这个地址,将消息通知给开发者的系统。请在5秒内处理完成回调通知的逻辑,开发者系统如果发生超时或者系统错误的时候,API不会重发此通知
返回方式说明
user_id上传数据的用户ID
catalog上传数据类型activities是智能配件类设备上传数据,gps_sports是gps运动类app上传数据
resource_id关联资源的ID,根据catalog不同有所区别,activities类型是设备编号,gps_sports是route_id
start_time运动开始时间(仅限追踪器类运动,非追踪器类为空)
end_time运动结束时间(仅限追踪器类运动,非追踪器类为空)
不判断内容,只判断返回的状态码,200即认为成功,其余状态均认为失败早起毁一天?让我们来科学的解决吧!_咕咚网-爱微帮
&& &&& 早起毁一天?让我们来科学的解决吧!
上班族的最大敌人就是睡眠不足。人们常说:早起毁一天。如何不让浓浓地困意击败自己呢?咱们的知乎网友@Urbino 来科学地深究一把!1. 总结(1)如何科学地睡觉:关灯、关手机滚上床盖好被子老实睡觉。如果想玩手机,就开灯玩爽了之后关灯关手机。舌下含褪黑素可以辅助迅速进入睡眠,适合倒时差和轻度失眠;如需长期服用请咨询医生。早上闹钟响后第一件事是拉开窗帘,让自己处于一个光亮的环境中,这样可以迅速清醒。(2)一些误解:脑电波是需要带上电极才能监测的,手机上那些睡眠APP不可能检测脑波;手机上各种睡眠监视APP一般原理是内置某种睡眠模式,传感器检测身体震动/声音与内置的睡眠模式相匹配进行相应的修正得到你的睡眠模式,可靠性不高,其中的睡眠质量等结果只可参考,并不准确;目前没有实验证据支持听到特定频段的声音可以促进人脑工作于\alpha波段,网上流传的“睡眠音乐”起到的只是放松和安慰剂作用;(3)午睡:保持睡觉环境尽量安静(耳塞),黑暗(眼罩),凉爽;从躺下到起床不要超过30分钟,白天不要在床以外的地方睡觉;有计划地午睡:在一个相对固定的时间,相对固定的地点(床上)睡觉;心理上不要觉得内疚,不要想着还有什么工作没做完,睡觉就是睡觉,醒了之后效率会更高;可以喝完咖啡马上睡觉,这样等咖啡效果上来的时候你就会自动醒过来;(4)可以帮助睡眠的药物:(※※所有药物务必在医生指导下服用!部分药物过量可能致死)脂肪:睡前少量服用高热量食物可以助睡;镁:可以通过苹果酸盐/柠檬酸盐/天冬氨酸盐等各种形式的盐补充,正常人每天需要400mg Mg,不可过量;钾:和镁协同作用,可以帮助大多数人抑制睡眠时的腿痉挛,帮助达成更好的睡眠效果。过量摄入影响心脏;L 茶氨酸:胶囊形式服用可以帮助舒缓情绪,放松身体,睡前服用;GABA:GABA可以有效帮助大脑关闭唤醒系统,从而更快更好地进入睡眠;鸟氨酸:可以帮助去除人体内脏中过量的氨,帮助人体放松;L 色氨酸:配合GABA使用可以达到更强的效果;γ-羟丁酸(GHB):在部分酒和肉中存在,无成瘾性,单次大量摄入可以提高生长激素水平,产生睡意;褪黑素:舌下含服褪黑素有助于减轻失眠症状,辅助睡眠。(5)其他:影响人体生物钟的有两个因素:褪黑素和环境光;人类生物钟略长于24h,接近25h,所以向西飞比向东飞更容易倒时差,因为一天变长了;睡眠分N1,N2, N3, N4和REM五个阶段,五个阶段循环出现,一次循环大概90min,一晚上可以循环4~5次,N3和N4是我们所说的深度睡眠,现在一般不区分;梦境出现在REM阶段;睡眠一般以REM阶段结束,REM阶段人的性欲是最强的,所以起床之后会那啥… ==!2. 什么人白天会困有很多原因,比如晚上没睡够,或者生病了,坐的时间太久,或者白天运动太剧烈[7]。比如文献[8]还提出白天睡得多(daytime sleepiness)和打鼾是导致女性高血压和糖尿病的高风险因素。但是对于正常人来说,文献[9]对994名21-94岁女性和840名24-92岁男性进行了统计(样本居住在澳大利亚东南部的Barwon Statistical Division,年期间进行的实验),结果为:女性:14%(138人)的女性有EDS(白天嗜睡,excessive daytime sleepiness),她们相较于其他女性BMI更高,体重更重,同时也更容易患上代谢综合征(metabolic syndrome)。男性:13.2%(111人)的男性有EDS,他们相较于其他男性腰围更大,有更大的概率患有代谢综合征(&60岁的男性,年轻男性没有明确的数据表明EDS与代谢综合征有关)。文章中EDS定义为Epworth Sleepiness Scale得分大于10的人,各位可以通过以下这个网址测试自己的EDS:The Epworth Sleepiness Scale,大于10的就要小心了,你在白天想睡觉的欲望已经超越了正常范畴,有潜在的疾病风险。在10以下的属于正常困的范围,一般认为属于睡眠不足或者过度劳累,但是针对这个生理现象我没有查到相关文献,欢迎补充。3. 如何保持生物钟人体内部有一个钟来调节自身晚上入睡和白天保持清醒。我们的生物钟(circadian clock)周期为24小时,处于人脑的视交叉上核(suprachiasmatic nucleus, SCN),如下图红框:我们的视交叉上核大约有10,000个神经元,而整个大脑有1000亿(1兆)个神经元,所以负责生物钟的SCN比针尖还小。我们的生理节奏(biological rhythm)有两种,一种是Exogenous rhythm(外源节奏),一种是Endogenous rhythm(内源节奏),前者是受环境影响的,比如古时候日出而作日落而息,后者是人类自己作的,比如晚上我就是不睡觉就要打游戏,时间久了生物钟就不会再遵循外界环境。人类自身的生物钟稍长于24小时,所以每天都需要根据环境光来进行校准,来适应环境的变化。如果没有环境光的影响,就会这样(黑的是睡觉,白的是清醒):从第10天开始把受试与外界光源隔绝,置于常亮的环境中,则因为人的生物钟周期接近25小时,受试的睡觉时间会产生偏差,第20天已经完全是中午睡觉午夜起床的节奏了。这也是为什么往西飞一个时区比往东飞更好受(因为往西飞一个时区就是25h/day,更符合人类生物钟)。对生物钟影响最大的外界因素是光,人类对于环境光的感知传到SCN(视交叉神经上核),塑造了外源节奏。但这种感知并不是通过人类通常情况下看东西用到的视杆和视锥传导的,而是通过视网膜神经节直接传到SCN的。对生物钟影响最大的内在因素是褪黑素(melatonin),正常由松果体分布,夜晚褪黑素增多,白天降低,对日行和夜行动物都如此。所以日行动物睡觉是「褪黑素增加了,该睡觉了!」,而夜行动物是「褪黑素增加了,该起床了!」。褪黑素可以通过外用药物调节,因此人需要睡觉的时候,舌下含一些褪黑素就可以了。实验证明褪黑素不仅对人有效果,对羊,老鼠,鸟和蜥蜴都管用。目前可以利用褪黑素辅助盲人们调节生物钟。但目前长期服用褪黑素的副作用未知,科研人员不建议在无医嘱的情况下服用褪黑素(Potential side effects of long-term administration of melatonin remain unknown, and its unsupervised use by the general public is discouraged)。生物钟的外在表现是人类体温,睡觉时体温会逐渐降低,然后再逐渐回升,如下图:生物钟也会导致各种各样的现象,比如(1)周一早上感觉难过(2)季节性情绪失调(3)倒班工作。So,说了这么多,调节生物钟被证实有效的有两种办法:(1)光刺激:晚上睡前不要在黑暗的条件下看手机和电脑,环境的暗和屏幕的亮会给SCN错误的信号:现在是白天,不该睡觉。白天起床第一件事儿是打开窗帘,让阳光照到自己脸上,马上就能清醒过来了。所以睡觉要在阳面睡!(2)褪黑素:睡前舌下放一片,调节过来后就不要服用了。综合使用以上两种方法,睡前关灯服用黑色素,早上起床就到亮的地方去(让环境变亮),短期即可调整好生物钟。4. 如何打盹 (Napping may not be such a no-no,以下翻译自哈佛医学院官网的这篇文章)上文说过,白天嗜睡是病,得治。但是EDS是指白天在工作的时候打瞌睡,而午睡则不在此列。那么如何午睡呢?(也就是中午打盹, noon nap).(1)睡觉时间少于30min理想的午睡时间在20-30min之间,更长时间的午睡会导致惯性睡眠----白天就困(因为有post-sleep grogginess)。(2)保持睡觉环境尽量安静,黑暗,凉爽这个就是尽量营造一个接近晚上的环境了,否则生物钟会自动调节为褪黑素少的时候睡觉的,时间长了白天就容易犯困了。(3)有计划地午睡随时随地想睡就睡不仅不舒服,而且会形成惯性。比如在在12点坐着睡习惯了,那么以后你12点开车的时候就也容易睡着。如果午睡,请固定时间,固定地点(在床上)。(4)喝咖啡日本的一个小型研究表明喝完咖啡之后马上睡觉(nap),然后再起床效果最佳,原因是你的睡眠发生在咖啡因起效果之前,之后咖啡因的效果会把你唤醒。但由于没有别的研究组做过这方面研究,所以我们对此建议持保留态度,唯一肯定的建议就是----咖啡的口感和香味可以起到唤醒作用。(注:我实验过喝咖啡马上睡觉,效果不错。但正如原文提到的,人对于咖啡因的反应差异性太大,所以无法作为普适建议)(5)心理上不要觉得内疚别觉着白天睡觉减少了你学习的时间!合理的午睡可以让你整个下午都容光焕发效率爆表!干货就是这些!谢谢观看!5. 参考文献[1]Loomis AL, Harvey EN, Hobart GA. Cerebral states during sleep as studied by human brain potentials. Journal of Experimental Psychology. ):127-144.[2]Dement W, Kleitman N. Cyclic variations in EEG during sleep and their relation to eye movements, body motility, and dreaming. Electroencephalography and Clinical Neurophysiology: Supplement. ):673-690.[3]Gais S, Molle M, Helms K, Born J. Learning-dependent increases in sleep spindle density. Journal of Neuroscience. ):.[4] Carskadon M, Dement W. Normal human sleep: An overview. In: Kryger MH, Roth T, Dement WC, editors. Principles and Practice of Sleep Medicine. 4th ed. Philadelphia: Elsevier S 2005. pp. 13-23.[5] Saper CB, Scammell TE, Lu J. Hypothalamic regulation of sleep and circadianrhythms. Nature. 63):.[6] Saper CB, Scammell TE, Lu J. Hypothalamic regulation of sleep and circadianrhythms. Nature. 63):.[7] McClain, James J., et al. &Associations between physical activity, sedentary time, sleep duration and daytime sleepiness in US adults.& Preventive medicine 66 (2014): 68-73.[8] Lindberg, Eva, et al. &Snoring and daytime sleepiness as risk factors for hypertension and diabetes in women--a population-based study.& Respiratory medicine 101.6 (2007): .[9] Amie C. Hayley, Lana J. Williams, Gerard A. Kennedy, Michael Berk, Sharon L. Brennan, Julie A. Pasco, Excessive daytime sleepiness and metabolic syndrome: across-sectional study, Metabolism, Volume 64, Issue 2, February 2015, Pages 244-252.[10] Krueger, James M., et al. &Interferon alpha-2 enhances slow-wave sleep in rabbits.& International journal of immunopharmacology 9.1 (1987): 23-30. 活人小编说:微信号:codooncom我是一只喜欢跟大家唠嗑的活人小编(づ ̄3 ̄)づ??~感谢知乎跑友@Urbino的烧脑科普,祝大家每天早上都能精精神神不瞌睡哦!
点击展开全文
悄悄告诉你
更多同类文章
还可知道有多少人阅读过此篇文章哦
阅读原文和更多同类文章
可微信扫描右侧二维码关注后
还可知道有多少人阅读过此篇文章哦
为有趣而活,为运动而生!这里是咕咚官方订阅号,集才华与美貌于一身的小编咚妞每日为您推送有趣、有用、有料的运动健身干货,精彩不容错过。欢迎勾搭咚妞。
您的【关注和订阅】是作者不断前行的动力
本站文章来自网友的提交收录,如需删除可进入
删除,或发送邮件到 bang@ 联系我们,
(C)2014&&版权所有&&&|&&&
京ICP备号-2&&&&京公网安备34