【HMS Core】调用Health Kit接口出现获取不到数据的情况
【问题描述1】
已经在华为健康APP中绑定设备,并确认有步数等信息且同步到了云端,但通过开发者接口无法获取
【解决方案】
请确认Health Kit登录的账号和运动健康App中有数据的账号是同一个,并检查在运动健康App 隐私管理中是否关联了华为运动健康服务,如果未关联,是无法获取到数据的。
如何判断用户是否关联了华为运动健康服务?
方式一:在运动健康App 隐私管理中,检查是否已开启标记②中的华为运动健康服务。
方式二:隐私接口请求时,在Headers中会返回x-health-app-privacy,需确保返回的值为1,1表示用户在运动健康App中已授权。
方式三:调用隐私授权状态查询接口进行判断:
如果未关联华为运动健康服务,开发者可以怎么做?
1、可以提示用户在运动健康App中开启华为运动健康服务开关:
2、可以根据华为运动健康App开放授权指南通过Health Kit云侧提供的H5页面关联华为运动健康服务:
华为运动健康App开放授权:https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Guides/server-app-auth-example-0000001071757151
【问题描述2】
查询隐私接口的时候,返回的状态为3。这是由于什么原因引起的?该怎么处理?
【解决方案】
1、3表示非华为运动健康App用户(不能授权),意思是用户没有使用过华为运动健康App,未关联华为运动健康服务。
2、隐私接口返回状态码3时:
1)可以进行相关提示,比如:“非华为运动健康App用户”(仅做参考)。
2)可以根据华为运动健康App开放授权指南通过Health Kit云侧提供的H5页面关联华为运动健康服务。
注意,一般为3的用户都没有产生过数据,关联华为运动健康服务后,也存在查询数据返回空的情况。
华为运动健康App开放授权:https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Guides/server-app-auth-example-0000001071757151
调用示例:
URL中的参数client_id和redirect_uri是固定的,您不需要任何操作,URL中仅支持修改以下参数:
用户连接成功后,需要用户手动关闭此页面:
3、针对您隐私接口返回3及运动健康App中查询有数据的情况,请检查用户登录的是否为同一账号,请使用运动健康App中有数据的账号进行登录授权Health Kit。
欲了解更多更全技术文章,欢迎访问https://developer.huawei.com/consumer/cn/forum/?ha_source=zzh