【HMS Core】流量获取、数据变更,运动健康里的小九九,你知道几个?

【问题描述1】

Health Kit订阅消息的数据获取流程是什么,该如何操作?

 

【解决方案】

1、订阅数据调用,可以先查看此文档:

https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Guides/subscription-0000001078496860

文档中有介绍基础概念订阅交互流程:

cke_1206.png

2、红框中标注的URL是注册成为订阅者时填写的回调地址:

注册成为订阅者:https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Guides/subscription-0000001078496860#section4351143591116

cke_12479.png

当订阅的用户数据上报到健康云发生变化时,Health Kit云侧就会调用您填写的回调地址,并携带相关参数,您服务端需要以Json格式进行接收,并返回204或404,此处的204、404是您服务器返回给Health Kit的,和REST接口中的错误码关系不大。

cke_2837.png

说明请查看“注册成为订阅者”章节:https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Guides/subscription-0000001078496860#section4351143591116

3、运动记录的订阅及运动类型可以在“锻炼记录数据”的简介中查看:

cke_4406.png

锻炼记录数据的简介:https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Guides/introduction-fitness-record-data-0000001131831088#section9506950218

 

【问题描述2】

怎么知道Health Kit给我推的是哪个用户数据数据发生了改变?

 

【解决方案】

您在数据事件订阅成功后,会返回openid,openid是您应用中用户的唯一标识,可以根据openid进行判断:

cke_6385.png

数据事件订阅:https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Guides/subscription-0000001078496860#section1381638115

openId可以通过用户的access_token获取:

解析凭证Access Token:

https://developer.huawei.com/consumer/cn/doc/development/HMSCore-References/account-gettokeninfo-0000001050050585#section1211262695115

cke_8747.png

以下仅做参考:

客户端在登录授权成功的时候需要去获取 用户的 access_token(at), refresh_token(rt), 和 openId, 维护一个 列表。refresh_token的有效期约180天,客户端每次失效时候要重新获取更新列表保证其有效。

每次收到订阅推送的openid的时候。 需要根据自己保存的openid去获取refresh_token, 在根据rt去请求at,最后用at去请求数据接口。

 

 欲了解更多更全技术文章,欢迎访问https://developer.huawei.com/consumer/cn/forum/?ha_source=zzh

posted @ 2023-03-30 10:38  华为开发者论坛  阅读(93)  评论(0编辑  收藏  举报