Q1:怎么通过Analytics Kit网关开放的数据导出接口,将数据导出到应用服务器?
A:
调用hms分析服务接口前首先需要获取token用来做接口鉴权,这里的三个参数client_id是我们创建应用时获得的App ID,client_secret是Appid的密码,在开发者联盟页面可以查到,grant_type固定填” client_credentials”,下面我们看下代码中的具体实现,在getToken()方法中,我们通过封装的http工具类,发送post请求到token接口,并将获取到的token信息转换为对象供后续做鉴权时使用。
下面我们看下导出个人数据和查询导出任务状态的代码实例。
首先是导出个人数据接口,我们通过buildHeader()方法构造接口要求提供的http请求的header信息,其中包括上一步获取的token信息拼装的“Authorization”, 应用的productId “x-product-id”,应用的AppId “x-app-id“三个字段。构造好header信息后,我们在exportUserGdprInfo()方法中通过http工具类发送post请求到导出个人数据接口,状态码返回200,即接口调用成功。工具类的参数分别是:接口url,需要查询数据的用户的aaid,前面构造好用来鉴权的header信息,注意这里aaid参数为json格式。
getExportTaskStatus()方法中调用了查询导出个人数据状态接口,除了接口url与导出个人数据接口不同外,另外两个参数与导出个人数据接口一致。注意查询导出状态的http请求类型为get,解析返回的数据即可得到导出状态。
Q2:分析服务支持应用删除个人数据吗?
A:支持。
在getDeleteTaskStatus()方法中,首先调用buildHeader()方法构造鉴权需要用到的http请求头,然后构造需要删除用户数据的aaid参数,通过http工具类的post方法发送请求到删除个人数据接口,接口返回状态码为200则调用成功。
查询删除状态接口,这个接口的请求类型为get请求,同样的aaid参数不需要构造为json格式,跟在url后即可,解析返回的数据即可得到删除状态。
Q3:分析服务支持数据导出吗?我们有自己的分析平台,希望导出到自己平台进行统一分析。
A:支持。
(1)Create a data export task
这段代码演示了使用Apache 开源的http client库对华为分析服务的创建数据导出任务接口发送请求,来创建一个数据导出任务。
请求体中必填项是起始日期,结束日期,以及数据导出文件的格式,选填项为App版本号,操作系统版本号等过滤条件。
收到远端返回的状态码为200以及包含success的json响应后,说明任务创建成功。之后在分析服务的页面上就可以看到刚刚创建的数据导出任务了。
(2)Return the data export task status
如下代码展示了数据导出回调接口规范的使用spring boot的一个简单实现。开发者实现了公网可访问的https的数据导出回调接口,并在华为分析服务的页面上注册该接口后,华为分析服务就可以在数据导出任务完成时调用该接口,把数据导出链接推送给开发者。
(3)Download the exported data
把第2步中的代码打包部署到服务器上后,待数据导出任务完成时,能够看到华为分析服务通过http post请求调用之前在华为分析服务上注册的数据导出回调接口/xiaobao/rawuserdata/callback,请求体中包含了下载链接和导出完成时间。这个下载链接有效期只有6个小时,开发者拿到下载链接后务必尽快下载以免链接过期。在有效期内,把下载链接贴入浏览器地址栏中,即可直接下载数据导出文件。
Q4:我们的应用服务器自行计算了一些用户属性,能不能把这些用户属性导入HA呢?
A:可以。
这段代码展示了一个触发用户属性导入接口以导入用户属性的简单样例。请求体中必填项是数据类型,用户ID,以及需要导入的用户属性ID和用户属性值。因为是自定义用户属性,所以数据类型的值要填1。接口调用成功时,会收到接口返回的200状态码和success的json响应。
Q5:HA的服务端API都有哪些?提供了哪些功能?
A:
服务端API一共有7个,分别是导出个人数据、查询导出任务状态、删除个人数据、查询删除任务状态、创建数据导出任务、回调数据导出任务状态、导入自定义用户属性,对应4大应用场景,我们先来看第一个:
当开发者需要支持终端用户获取个人数据电子拷贝,以满足GDPR要求时,就可以在其开发的应用中提供 获取个人数据电子拷贝的按钮,当终端用户点击此按钮时,开发者的应用服务器可以调用“导出个人数据”接口,导出其采集上报到分析服务 服务端的该用户个人数据电子拷贝。应用服务器通过“查询导出任务状态”接口 查询导出请求任务在分析平台的执行进展,并及时下载导出数据提供给终端用户。
代码实现:
调用hms分析服务接口前首先需要获取token用来做接口鉴权,这里的三个参数client_id是我们创建应用时获得的App ID,client_secret是Appid的密码,在开发者联盟页面可以查到,grant_type固定填” client_credentials”,下面我们看下代码中的具体实现,在getToken()方法中,我们通过封装的http工具类,发送post请求到token接口,并将获取到的token信息转换为对象供后续做鉴权时使用。
下面我们看下导出个人数据和查询导出任务状态的代码实例。
先是个人数据导出接口,我们通过buildHeader()方法构造接口要求提供的http请求的header信息,其中包括上一步获取的token信息拼装的“Authorization”, 应用的productId “x-product-id”,应用的AppId “x-app-id“三个字段。构造好header信息后,我们在exportUserGdprInfo()方法中通过http工具类发送post请求到导出个人数据接口,状态码返回200,即接口调用成功。工具类的参数分别是:接口url,需要查询数据的用户的aaid,前面构造好用来鉴权的header信息,注意这里aaid参数为json格式。
getExportTaskStatus()方法中调用了查询导出个人数据状态接口,除了接口url与导出个人数据接口不同外,另外两个参数与导出个人数据接口一致。注意查询导出状态的http请求类型为get,解析返回的数据即可得到导出状态。
场景二:
当开发者需要支持终端用户删除个人数据,以满足GDPR要求时,开发者可以在其开发的应用中提供删除个人数据按钮,当终端用户点击此按钮时,开发者的应用服务器可以调用“删除个人数据”接口,删除其采集上报到分析服务服务端的该用户的数据。应用服务器通过“查询删除任务状态”接口查询数据删除请求任务在分析平台的执行进展,并及时下载导出数据提供给终端用户。
代码实现:
在getDeleteTaskStatus()方法中,首先调用buildHeader()方法构造鉴权需要用到的http请求头,然后构造需要删除用户数据的aaid参数,通过http工具类的post方法发送请求到删除个人数据接口,接口返回状态码为200则调用成功。
查询删除状态接口,这个接口的请求类型为get请求,同样的aaid参数不需要构造为json格式,跟在url后即可,解析返回的数据即可得到删除状态。
场景三:
如果开发者需要将通过分析服务采集的数据,导入自建分析平台或第三方分析平台做统一分析,可以通过“创建数据导出任务”接口 请求导出分析服务采集的数据。 分析服务通过“回调数据导出任务状态”接口通知开发者的应用服务器导出任务的执行状态和文件下载路径,开发者需提供接收通知的服务端接口,并根据通知及时下载已导出的数据。
代码实现:
(1)Create a data export task
这段代码演示了使用Apache 开源的http client库对华为分析服务的创建数据导出任务接口发送请求,来创建一个数据导出任务。
请求体中必填项是起始日期,结束日期,以及数据导出文件的格式,选填项为App版本号,操作系统版本号等过滤条件。
收到远端返回的状态码为200以及包含success的json响应后,说明任务创建成功。之后在分析服务的页面上就可以看到刚刚创建的数据导出任务了。
(2)Return the data export task status
如下代码展示了数据导出回调接口规范的使用spring boot的一个简单实现。开发者实现了公网可访问的https的数据导出回调接口,并在华为分析服务的页面上注册该接口后,华为分析服务就可以在数据导出任务完成时调用该接口,把数据导出链接推送给开发者。
(3)Download the exported data
把第2步中的代码打包部署到服务器上后,待数据导出任务完成时,能够看到华为分析服务通过http post请求调用之前在华为分析服务上注册的数据导出回调接口/xiaobao/rawuserdata/callback,请求体中包含了下载链接和导出完成时间。这个下载链接有效期只有6个小时,开发者拿到下载链接后务必尽快下载以免链接过期。在有效期内,把下载链接贴入浏览器地址栏中,即可直接下载数据导出文件。
场景四:
当开发者的应用服务器自行计算了一些用户属性,并希望将这些用户属性应用到高级分析提供的各种分析报告中(如作为查看报告时的一个过滤条件),就可以在其应用服务器中调用此接口,通过服务端上报其自行计算的用户属性。
这段代码展示了一个触发用户属性导入接口以导入用户属性的简单样例。请求体中必填项是数据类型,用户ID,以及需要导入的用户属性ID和用户属性值。因为是自定义用户属性,所以数据类型的值要填1。接口调用成功时,会收到接口返回的200状态码和success的json响应。