楼主

5541发表于 2019-10-10 11:25:57
只看该作者楼主

卡片类快服务接入指南(二) [复制链接]

本帖最后由 本无所为之2019-10-10 11:29:00 编辑

前篇——卡片类快服务接入指南(一)


上篇说到创建快服务,本文继续往下说……


↓ ↓ ↓


2.3 测试快服务


2.3.1 发布测试态快服务


点击“测试/测试发布”菜单,然后点击“测试发布”按钮。



2.3.2 前期准备


1、安装卡片开发工具IDE

华为快应用IDE下载详见:安装华为快应用IDE

华为快应用IDE使用方法详见:我的第一个快应用


2、安装测试工具Ability助手

在手机上打开应用市场,搜索“华为快服务助手”,点击下载,并安装APP。


3、安装快应用加载器

如果使用华为快应用IDE调试快应用,在启动运行或调试时将自动检查是否已安装华为快应用加载器,没有安装将自动提示安装;如果未使用华为快应用IDE,请通过以下链接获取安装包,手动在手机中安装:

https://developer.huawei.com/consumer/cn/service/hms/catalog/fastapp.html?page=fastapp_fastapp_devprepare_install_tool



4、导入快应用RPK文件和卡片JS文件至手机/sdcard/hag_test目录


方式一:如果使用华为快应用IDE运行Ability助手可自动完成RPK和卡片JS的导入;ide工具上只有运行hag demo选项(需要ide工具支持运行ability助手的情况下)


方式二:如果未使用华为快应用IDE,可使用RPK安装工具导入,RPK安装工具请联系华为快服务智慧平台运营人员获取;


导入成功后检查手机/sdcard/hag_test目录下存在以RPK包名命名的文件夹:

C: Users HAGTEST > adb shellHWALP: / # cd /sdcard / hag_testHWALP: /sdcard/hag_test#ls - ltotal 6drwxrwx--x 2 root sdcard_rw 3488 2019 - 02 - 19 16: 37 com.huawei.cloudtwopizza.storm.subwaytips.module

RPK文件夹下存在RPK文件和卡片JS文件:

HWALP: /sdcard/hag_test#cd com.huawei.cloudtwopizza.storm.subwaytips.module /    HWALP: /sdcard/hag_test / com.huawei.cloudtwopizza.storm.subwaytips.module# ls - ltotal 336    -    rw - rw-- --1 root sdcard_rw 319493 2018 - 09 - 03 19: 30 com.huawei.cloudtwopizza.storm.subwaytips.module.rpk -    rw - rw-- --1 root sdcard_rw 6925 2019 - 02 - 19 16: 34 pushCard.js -    rw - rw-- --1 root sdcard_rw 3630 2019 - 02 - 19 16: 34 subwayremind.js -    rw - rw-- --1 root sdcard_rw 6397 2019 - 02 - 19 16: 34 transferCard.js

其中卡片JS文件名和manifest.json中定义的卡片ID一致。


5、确认已在开发者联盟上创建卡片类服务。


2.3.3 系统推荐卡片测试方法


1、打开Ability助手,选择卡片快服务,点击系统推荐卡片。



2、根据开发者联盟上的快应用APP ID,选择要测试的快应用。



3、订阅快服务。



4、进行账号绑定。



账号绑定页面由开发者的快应用提供,如果快应用不涉及账号绑定功能,可以跳过这一步。


5、触发卡片推送相关的事件,查看卡片。



6、点击卡片或卡片上的按钮验证卡片跳转快应用功能是否正常。


2.3.4 用户查询卡片测试方法


1、打开Ability助手,选择卡片快服务,点击用户查询卡片。



2、如果快服务的触发意图为关键词搜索,选择意图分类,输入关键词,通过扫描快服务的二维码查询卡片。


意图分类通过快服务定义页面编辑用户查询意图获取:



在Ability助手的用户查询卡片页扫描二维码:



3、如果快服务的触发意图为图片,需选择意图分类,通过“选择图片”按钮从手机中选择一张图片作为卡片的图片参数,再扫描快服务的二维码查询卡片:



4、点击查询卡片,检查卡片是否正常加载。



5、点击卡片或卡片上的按钮验证卡片跳转快应用功能是否正常。


2.4 上架快服务

测试通过后,点击提交上架按钮即可进行发布。快服务运营人员收到相关信息后会进行相关服务的审核。审核通过后,快服务可以在华为快服务智慧平台上进行分发。


2.5 升级快服务

发布审核后的快服务需要修改部分信息时,点击“编辑”按钮,在修改信息后测试发布,测试通过后点击“升级”按钮完成升级。


2.6 下架快服务

开发者点击“下架”按钮,在弹框中填写下架原因则可以申请下架快服务。


2.7 版本管理

最后可以在“版本管理”菜单,看到当前发布服务版本的情况。


3. 账号绑定

3.1 概述

卡片类服务接入场景的账号绑定,主要用于开发者推送事件通知给华为用户,可选地支持卡片获取开发者分配的用户AccessToken,用于用户鉴权场景。


3.2 绑定方法

开发者绑定华为账号后,会获取华为账号分配的用户的openID,开发者可以使用该openID推送事件通知给华为用户。

(1)华为帐号的开放基于OAuth2.0协议标准。

(2)华为快服务智慧平台的账号绑定流程基于OAuth2.0协议标准与开发者服务器交互。


3.2.1 约束

不同的应用(appID区别)使用相同的华为帐号登录获得的OpenID是不同且唯一的,同一个应用使用相同的华为帐号登录获得的OpenID总是相同的。


3.2.2 开发前准备

在开发者联盟上申请AppID。请参考:创建快应用

在开发者联盟上为对应的RPK产品申请账号服务。请参考:申请账号服务

在开发者开发的快应用里开发帐号绑定的页面和逻辑。

在开发者的服务器侧开发帐号绑定的逻辑。


3.2.3 账号绑定开发流程

卡片类服务接入场景的账号绑定流程如下:



(1)用户在华为产品上点击账号绑定,跳转到快应用的账号关联页面。


(2)在快应用的帐号关联页面里调用接口获取用户的授权码code、用户昵称和头像。参考:卡片类快服务开发指南-章节12. 快应用卡片API说明【INF10】、【INF11】、【INF12】。

①在快应用的账号关联页面里调用快应用SDK中的【INF10】接口,通过申请的appID获取用户的授权码Code,参考:卡片类快服务开发指南-章节12. 快应用卡片API说明【INF10】。

②调用【INF11】接口,通过用户appID获取用户的AT,参考:卡片类快服务开发指南-章节12. 快应用卡片API说明【INF11】。

③调用【INF12】接口,通过用户的AT获取用户的昵称和头像。参考:卡片类快服务开发指南-章节12. 快应用卡片API说明【INF12】。


(3)用户在快应用的帐号关联页面上输入用户帐号信息,并确认授权。


(4)快应用将用户帐号信息、授权码Code发送到快应用的云侧服务器。


(5)快应用服务器调用华为鉴权服务器的接口,根据授权码Code获取用户openID和AcessToken。参考:卡片类快服务开发指南-章节12. 快应用卡片API说明【INF2】、【INF4】。


(6)快应用服务器完成openID和帐号关联绑定。


(7)快应用服务器完成帐号关联后,调用华为快服务智慧平台接口将帐号关联结果发送给华为快服务智慧平台。参考:卡片类快服务开发指南-章节12. 快应用卡片API说明【INF5】、【INF6】。


(8)快应用服务器将生成的session的sessionKey(包含有效期、业务自定义的属性)作为响应信息,返回给快应用。


(9)快应用保存sessionKey 。


3.2.4 登录信息维护的流程


用户完成帐号绑定后,如果华为帐号已经登录,在快应用里就无需再次登录CP的帐号即可直接进行业务操作。


为了避免华为帐号切换后,造成用户数据错乱,需要在每次进入快应用时都调用account.checkUserSession,校验用户是否登出或切换过帐号。



  1. 用户打开快应用,快应用调用HMS APK的方法 account.checkUserSession校验华为帐号是否有切换或登出。参考:卡片类快服务开发指南-章节12. 快应用卡片API说明【INF13】。如果返回为true,表示当前会话仍然有效,如果返回为false,则需要重新执行登录流程获取session,登录流程参见账号绑定流程。

  2. 业务请求携带sessionKey,开发者服务器通过sessionKey获取openID,使用openID查询关联的开发者帐号进行业务操作。

3.2.5 AT刷新流程


AT刷新有两种方式:


1、开发者服务器提供符合OAuth2.0标准的AT刷新流程:



华为快服务智慧平台查询用户的AT时,如果AT已经过期,则会使用RT向开发者服务器重新申请AT


AT刷新请求报文样例如下:

POST /token HTTP/1.1Content-Type: application/x-www-form-urlencodedgrant_type=refresh_token&refresh_token=tGzv3JOkF0XG5Qx2TlKWIA

说明:开发者需要保证刷新AT和请求AT的URL保持一致。


AT刷新请求响应报文样例如下:

HTTP / 1.1 200 OKContent - Type: application / json;charset = UTF - 8Cache - Control: no - storePragma: no - cache {    'access_token': '2YotnFZFEjr1zCsicMWpAA',    'token_type': 'bearer',    'expires_in': 3600,    'refresh_token': 'tGzv3JOkF0XG5Qx2TlKWIA'}


2、开发者服务器调用华为快服务智慧平台的接口,重新同步用户的AT/RT,参考:卡片类快服务开发指南-章节12. 快应用卡片API说明【INF6】和【INF8】


4. 服务运行流程

举报
楼主发表于 2019-10-10 17:17:46
只看该作者沙发

嘻嘻(二)来啦!可以和(一)一起看起来~

举报

您需要登录后才可以回帖

登录注册
发表回复