如何获取华为运动健康服务授权码并调用Rest API访问数据?
华为运动健康服务(HUAWEI Health Kit)允许三方生态应用在获取用户授权后,通过REST API接口访问数据库,读取华为和生态伙伴开放的运动健康数据或写入数据到华为运动健康服务,为用户提供更加个性化的健康改善服务。如运动类App在获取授权码后可以读取华为用户的心率、步数等运动数据,最终给用户提供健康建议。
1. 申请帐号服务和申请运动健康服务
Health Kit需要用户登录和授权,需要先申请帐号服务,可以在申请帐号服务的同时创建应用,也可以为已经创建的应用开通帐号服务。创建成功后,可以在帐号服务列表里查看已创建的应用,点击条目能查看到的详细信息如下图所示。其中的APP ID,APP SECRET和回调地址后面会用到。

2. 获取授权码code
相比于其他Kit的REST API,Health Kit使用前需要获得授权码登录华为帐号后获取到授权码,多了一个获取授权码Code的步骤。
开发指南对授权码登录做了详细介绍,此处共有client_id,response_type,redirect_uri和scope共四个必传字段,其中client_id, 是在创建应用成功后自动生成的APP ID。redirect_uri 是申请帐号服务步骤中填写的“回调地址”。
在用户输入华为帐号登录授权之后,网页浏览器会跳转到redirect_uri对应的链接,并且把所需要的授权码code作为参数追加在链接后面。

看一下官网给出的示例请求,在电脑或手机浏览器中打开上述链接,都会显示如下的华为帐号登录和授权页面。

登录授权成功之后浏览器会跳转如下链接

其中接口需要用到的授权码code就是链接中请求载荷参数code的字符串值。
需要注意的是:这边控制台中的code是urlencode编码前的字符串,浏览器中的code是urlencode编码后的字符串。
在后续步骤主要使用的是urlencode编码前的code的值。(浏览器中的code需要进行urlencode解码再使用)
接下来需要通过上面获取到的授权码code,获取access_token和refresh_token。
由于使用限制,接下来的步骤不能再使用官网demo的参数进行测试了,需要创建自己的应用。然后传入自己项目相关的参数,重复上述步骤获取授权码code。
创建的应用的相关参数,都可以在“应用服务”-“帐号”下面找到,如下是创建的一个测试应用的信息页面。

1.使用授权码Code获取AT
client_id,redirect_url需要和获取授权码code使用的一致。
code参数是urlencode编码前的code的值。
client_secret参数是上面应用信息里的APP SECRET。

2 .Refresh Token获取access_token

3.使用获取到的access_token测试数据相关API
由于我们上面登录授权时,申请了获取身高体重的权限,所以在此测试一下获取身高数据的接口。
参照“查询最新采样数据”的文档链接,按照文档中postman请求测试结果如下:

Head里面的参数:Authorization 字段值为: Bearer+‘空格’+ access_token值,形如:Bearer {access_token} ,x-client-id 的值需要和上方使用的client_id一致。
请求参数“dataTypeName”:“com.huawei.instantaneous.body_weight”在数据类型-体重-原子采样数据类型可以找到:
https://developer.huawei.com/consumer/cn/doc/development/HMSCore-References/latest-sampleset-0000001078273166

如果要同时查询多个数据,请求url示例如下:
https://health-api.cloud.huawei.com/healthkit/v1/sampleSets/latestSamplePoint?dataType=com.huawei.instantaneous.body_weight&dataType=com.huawei.instantaneous.blood_glucose
链接后拼接多个dataType参数即可。
了解更多详情>>
如何获取华为运动健康服务授权码并调用Rest API访问数据?的更多相关文章
- 【FAQ】申请华为运动健康服务授权的4个常见问题及解决方法
华为运动健康服务(HUAWEI Health Kit)提供原子化数据开放,在获取用户对数据的授权后,应用可通过接口访问运动健康数据,对用户数据进行增.删.改.查等操作,为用户提供运动健康类数据服务.这 ...
- Mate 40系列发布 搭载华为运动健康服务带来健康数字生活
10月30日,HUAWEI Mate 40系列国内发布会如期而至.Mate 40系列除了拥有强悍的性能.全能记录影像和突破性的交互之外,还搭载了全新升级的HMS Core,其中,Health Kit( ...
- 华为运动健康服务Health Kit 6.9.0版本新增功能揭秘!
华为运动健康服务(HUAWEI Health Kit)6.9.0版本新鲜出炉啦! 一文了解新增功能,快来一起加入Health Kit生态大家庭! 一.更丰富:睡眠呼吸记录健康数据开放 呼吸机是用于为患 ...
- 【FAQ】运动健康服务REST API接口使用过程中常见问题和解决方法总结
华为运动健康服务(HUAWEI Health Kit)为三方生态应用提供了REST API接口,通过其接口可访问数据库,为用户提供运动健康类数据服务.在实际的集成过程中,开发者们可能会遇到各种问题,这 ...
- 【FAQ】申请运动健康服务验证环节常见问题及解答
华为 HMS Core 运动健康服务(HUAWEI Health Kit)提供原子化数据开放.应用在获取用户数据授权后,可通过接口访问运动健康数据,对用户数据进行读写等操作,为用户提供运动健康类数据服 ...
- 吴太银:华为消费者云服务Cassandra使用场景与最佳实践
大家好,我是华为消费者云的吴太银. 我今天分享的主要是华为消费者云服务使用Cassandra的应用场景和最佳实践.我这个可能跟其他嘉宾分享的不太一样,因为前几个嘉宾讲的实际上对Cassandra原生的 ...
- Apache Oltu 实现 OAuth2.0 服务端【授权码模式(Authorization Code)】
要实现OAuth服务端,就得先理解客户端的调用流程,服务提供商实现可能也有些区别,实现OAuth服务端的方式很多,具体可能看 http://oauth.net/code/ 各语言的实现有(我使用了Ap ...
- 钉钉开发第三方H5微应用入门详细教程[ISV][免登流程][授权码][HTTP回调推送][识别用户身份][获取用户信息]
转载请注明原文地址:https://www.cnblogs.com/applerosa/p/11509512.html (by lnexin@aliyun.com 世间草木) 此教程注意点: 适用于第 ...
- Spring cloud微服务安全实战-5-6实现授权码认证流程(2)
授权服务器,返回给我一个授权码,这里我只需要把授权传回去就可以了.来证明我是这个服务器. URI的地址传和第一次的地址一样的,认证服务器会比,第一次跳转的请求和第二次申请令牌的请求redirect_u ...
- 阶段5 3.微服务项目【学成在线】_day16 Spring Security Oauth2_06-SpringSecurityOauth2研究-Oauth2授权码模式-申请令牌
3.3 Oauth2授权码模式 3.3.1 Oauth2授权模式 Oauth2有以下授权模式: 授权码模式(Authorization Code) 隐式授权模式(Implicit) 密码模式(Reso ...
随机推荐
- Spring + JAX-WS : ‘xxx’ is an interface, and JAXB can’t handle interfaces 错误解决方法
错误栈 Caused by: com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 2 counts of IllegalAnnotatio ...
- 【Filament】立方体贴图(6张图)
1 前言 本文通过一个立方体贴图的例子,讲解三维纹理贴图(子网格贴图)的应用,案例中使用 6 张不同的图片给立方体贴图,图片如下. 读者如果对 Filament 不太熟悉,请回顾以下内容. F ...
- PlatformIO+esp32+添加自己的库(.c.h文件)
什么都放main.c的话,很有可能堆积成屎山,所以我想给分开写,每个功能有自己的.c..h文件. 在lib下新建文件夹,例如led,再在里面分别建led.c.led.h; 写好内容后再main ...
- 排查 dotNET Core 程序内存暴涨的问题
0. 问题 新版本上线之后,发现内存猛涨,入站流量猛增,不清楚具体原因,部分接口提示 OOM 异常,随后 Pod 直接崩溃无限重启. 1. 准备 Pod 已经接入了 NewRelic 和 Graylo ...
- Python 初学者容易踩的坑
哈喽大家好,我是咸鱼. 今天咸鱼列出了一些大家在初学 Python 的时候容易踩的一些坑,看看你有没有中招过. 原文:https://www.bitecode.dev/p/unexpected-pyt ...
- [VueJsDev] 快速入门 - vue项目根目录配置文件
[VueJsDev] 目录列表 https://www.cnblogs.com/pengchenggang/p/17037320.html vue项目根目录配置文件 ::: details 目录 目录 ...
- 线上机器 swap 过高导致告警
哈喽大家好,我是咸鱼. 今天收到了一个告警,说有台服务器上的 swap 过高,已经用了 50% 以上了. 登录机器查看一下内存以及 swap 的使用情况. [root@localhost ~]# fr ...
- 前后端分离之jQuery入门
jQuery入门 基本概念:jQuery是一个快速,小型且功能丰富的JavaScript库.借助易于使用的API(可在多种浏览器中使用),使HTML文档的遍历和操作,事件处理,动画和Ajax等事情变得 ...
- Linux Daemon & 单例模式 设计与实现
PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明 本文作为本人csdn blog的主站的备份.(Bl ...
- Garnet: 力压Redis的C#高性能分布式存储数据库
今天看到微软研究院开源了一个新的C#项目,叫Garnet,它实现了Redis协议,可以直接将Redis替换为Garnet,客户端不需要任何修改.根据其官网的信息,简单的介绍一下它. 开源仓库地址:ht ...